diff options
Diffstat (limited to 'clang/lib/Basic/Targets/Mips.h')
-rw-r--r-- | clang/lib/Basic/Targets/Mips.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/Mips.h b/clang/lib/Basic/Targets/Mips.h index 8acaf56..7ddcd57 100644 --- a/clang/lib/Basic/Targets/Mips.h +++ b/clang/lib/Basic/Targets/Mips.h @@ -13,6 +13,7 @@ #ifndef LLVM_CLANG_LIB_BASIC_TARGETS_MIPS_H #define LLVM_CLANG_LIB_BASIC_TARGETS_MIPS_H +#include "OSTargets.h" #include "clang/Basic/TargetInfo.h" #include "clang/Basic/TargetOptions.h" #include "llvm/Support/Compiler.h" @@ -450,6 +451,42 @@ public: return std::make_pair(32, 32); } }; + +class LLVM_LIBRARY_VISIBILITY WindowsMipsTargetInfo + : public WindowsTargetInfo<MipsTargetInfo> { + const llvm::Triple Triple; + +public: + WindowsMipsTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts); + + void getVisualStudioDefines(const LangOptions &Opts, + MacroBuilder &Builder) const; + + BuiltinVaListKind getBuiltinVaListKind() const override; + + CallingConvCheckResult checkCallingConvention(CallingConv CC) const override; +}; + +// Windows MIPS, MS (C++) ABI +class LLVM_LIBRARY_VISIBILITY MicrosoftMipsTargetInfo + : public WindowsMipsTargetInfo { +public: + MicrosoftMipsTargetInfo(const llvm::Triple &Triple, + const TargetOptions &Opts); + + void getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const override; +}; + +// MIPS MinGW target +class LLVM_LIBRARY_VISIBILITY MinGWMipsTargetInfo + : public WindowsMipsTargetInfo { +public: + MinGWMipsTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts); + + void getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const override; +}; } // namespace targets } // namespace clang |