diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 17:50:40 +0900 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 17:50:40 +0900 |
commit | fea7da1b00cc97d742faede2df96c7d327950f49 (patch) | |
tree | 4de1d6b4ddc69f4f32daabb11ad5c71ab0cf895e /clang/lib/Basic/Targets/Mips.cpp | |
parent | 9b99dde0d47102625d93c5d1cbbc04951025a6c9 (diff) | |
parent | 0aa930a41f2d1ebf1fa90ec42da8f96d15a4dcbb (diff) | |
download | llvm-users/chapuni/cov/single/nextcount.zip llvm-users/chapuni/cov/single/nextcount.tar.gz llvm-users/chapuni/cov/single/nextcount.tar.bz2 |
Merge branch 'users/chapuni/cov/single/nextcount-base' into users/chapuni/cov/single/nextcountusers/chapuni/cov/single/nextcount
Diffstat (limited to 'clang/lib/Basic/Targets/Mips.cpp')
-rw-r--r-- | clang/lib/Basic/Targets/Mips.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/Mips.cpp b/clang/lib/Basic/Targets/Mips.cpp index 174bc9d..d56995e 100644 --- a/clang/lib/Basic/Targets/Mips.cpp +++ b/clang/lib/Basic/Targets/Mips.cpp @@ -304,3 +304,62 @@ bool MipsTargetInfo::validateTarget(DiagnosticsEngine &Diags) const { return true; } + +WindowsMipsTargetInfo::WindowsMipsTargetInfo(const llvm::Triple &Triple, + const TargetOptions &Opts) + : WindowsTargetInfo<MipsTargetInfo>(Triple, Opts), Triple(Triple) {} + +void WindowsMipsTargetInfo::getVisualStudioDefines( + const LangOptions &Opts, MacroBuilder &Builder) const { + Builder.defineMacro("_M_MRX000", "4000"); +} + +TargetInfo::BuiltinVaListKind +WindowsMipsTargetInfo::getBuiltinVaListKind() const { + return TargetInfo::CharPtrBuiltinVaList; +} + +TargetInfo::CallingConvCheckResult +WindowsMipsTargetInfo::checkCallingConvention(CallingConv CC) const { + switch (CC) { + case CC_X86StdCall: + case CC_X86ThisCall: + case CC_X86FastCall: + case CC_X86VectorCall: + return CCCR_Ignore; + case CC_C: + case CC_OpenCLKernel: + case CC_PreserveMost: + case CC_PreserveAll: + case CC_Swift: + case CC_SwiftAsync: + return CCCR_OK; + default: + return CCCR_Warning; + } +} + +// Windows MIPS, MS (C++) ABI +MicrosoftMipsTargetInfo::MicrosoftMipsTargetInfo(const llvm::Triple &Triple, + const TargetOptions &Opts) + : WindowsMipsTargetInfo(Triple, Opts) { + TheCXXABI.set(TargetCXXABI::Microsoft); +} + +void MicrosoftMipsTargetInfo::getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const { + WindowsMipsTargetInfo::getTargetDefines(Opts, Builder); + WindowsMipsTargetInfo::getVisualStudioDefines(Opts, Builder); +} + +MinGWMipsTargetInfo::MinGWMipsTargetInfo(const llvm::Triple &Triple, + const TargetOptions &Opts) + : WindowsMipsTargetInfo(Triple, Opts) { + TheCXXABI.set(TargetCXXABI::GenericMIPS); +} + +void MinGWMipsTargetInfo::getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const { + WindowsMipsTargetInfo::getTargetDefines(Opts, Builder); + Builder.defineMacro("_MIPS_"); +} |