diff options
Diffstat (limited to 'clang/lib/Basic/Targets/RISCV.cpp')
| -rw-r--r-- | clang/lib/Basic/Targets/RISCV.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/RISCV.cpp b/clang/lib/Basic/Targets/RISCV.cpp index a4925e84784a..b6ea4440507e 100644 --- a/clang/lib/Basic/Targets/RISCV.cpp +++ b/clang/lib/Basic/Targets/RISCV.cpp @@ -486,3 +486,15 @@ bool RISCVTargetInfo::validateCpuSupports(StringRef Feature) const { bool RISCVTargetInfo::isValidFeatureName(StringRef Name) const { return llvm::RISCVISAInfo::isSupportedExtensionFeature(Name); } + +bool RISCVTargetInfo::validateGlobalRegisterVariable( + StringRef RegName, unsigned RegSize, bool &HasSizeMismatch) const { + if (RegName == "ra" || RegName == "sp" || RegName == "gp" || + RegName == "tp" || RegName.starts_with("x") || RegName.starts_with("a") || + RegName.starts_with("s") || RegName.starts_with("t")) { + unsigned XLen = getTriple().isArch64Bit() ? 64 : 32; + HasSizeMismatch = RegSize != XLen; + return true; + } + return false; +} |
