@@ -118,6 +118,10 @@ std::string RISCVTargetInfo::convertConstraint(const char *&Constraint) const {
118
118
return R;
119
119
}
120
120
121
+ static unsigned getVersionValue (unsigned MajorVersion, unsigned MinorVersion) {
122
+ return MajorVersion * 1000000 + MinorVersion * 1000 ;
123
+ }
124
+
121
125
void RISCVTargetInfo::getTargetDefines (const LangOptions &Opts,
122
126
MacroBuilder &Builder) const {
123
127
Builder.defineMacro (" __ELF__" );
@@ -153,10 +157,10 @@ void RISCVTargetInfo::getTargetDefines(const LangOptions &Opts,
153
157
for (auto &Extension : ISAInfo->getExtensions ()) {
154
158
auto ExtName = Extension.first ;
155
159
auto ExtInfo = Extension.second ;
156
- unsigned Version =
157
- (ExtInfo.MajorVersion * 1000000 ) + (ExtInfo.MinorVersion * 1000 );
158
160
159
- Builder.defineMacro (Twine (" __riscv_" , ExtName), Twine (Version));
161
+ Builder.defineMacro (
162
+ Twine (" __riscv_" , ExtName),
163
+ Twine (getVersionValue (ExtInfo.MajorVersion , ExtInfo.MinorVersion )));
160
164
}
161
165
162
166
if (ISAInfo->hasExtension (" m" ) || ISAInfo->hasExtension (" zmmul" ))
@@ -194,8 +198,7 @@ void RISCVTargetInfo::getTargetDefines(const LangOptions &Opts,
194
198
if (ISAInfo->hasExtension (" zve32x" )) {
195
199
Builder.defineMacro (" __riscv_vector" );
196
200
// Currently we support the v0.10 RISC-V V intrinsics.
197
- unsigned Version = (0 * 1000000 ) + (10 * 1000 );
198
- Builder.defineMacro (" __riscv_v_intrinsic" , Twine (Version));
201
+ Builder.defineMacro (" __riscv_v_intrinsic" , Twine (getVersionValue (0 , 10 )));
199
202
}
200
203
}
201
204
0 commit comments