diff options
| author | Martin Storsjo <martin@martin.st> | 2017-08-13 19:42:17 +0000 |
|---|---|---|
| committer | Martin Storsjo <martin@martin.st> | 2017-08-13 19:42:17 +0000 |
| commit | 31cac7a67c58d0d5e7615089ead35a3ab24ed508 (patch) | |
| tree | 2319bea22dd9d38d43071708be759e0d3b250f89 /clang/lib/Basic/Targets/AArch64.h | |
| parent | 23413195649d0cf6f3860ae8b5fb115b35032075 (diff) | |
| download | bcm5719-llvm-31cac7a67c58d0d5e7615089ead35a3ab24ed508.tar.gz bcm5719-llvm-31cac7a67c58d0d5e7615089ead35a3ab24ed508.zip | |
[AArch64] Add support for a MinGW AArch64 target
Differential Revision: https://reviews.llvm.org/D36364
llvm-svn: 310798
Diffstat (limited to 'clang/lib/Basic/Targets/AArch64.h')
| -rw-r--r-- | clang/lib/Basic/Targets/AArch64.h | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/clang/lib/Basic/Targets/AArch64.h b/clang/lib/Basic/Targets/AArch64.h index a720791a91b..8391b7367a2 100644 --- a/clang/lib/Basic/Targets/AArch64.h +++ b/clang/lib/Basic/Targets/AArch64.h @@ -89,24 +89,42 @@ private: void setDataLayout() override; }; -class LLVM_LIBRARY_VISIBILITY MicrosoftARM64TargetInfo +class LLVM_LIBRARY_VISIBILITY WindowsARM64TargetInfo : public WindowsTargetInfo<AArch64leTargetInfo> { const llvm::Triple Triple; public: - MicrosoftARM64TargetInfo(const llvm::Triple &Triple, - const TargetOptions &Opts); + WindowsARM64TargetInfo(const llvm::Triple &Triple, + const TargetOptions &Opts); void setDataLayout() override; + BuiltinVaListKind getBuiltinVaListKind() const override; + + CallingConvCheckResult checkCallingConvention(CallingConv CC) const override; +}; + +// Windows ARM, MS (C++) ABI +class LLVM_LIBRARY_VISIBILITY MicrosoftARM64TargetInfo + : public WindowsARM64TargetInfo { +public: + MicrosoftARM64TargetInfo(const llvm::Triple &Triple, + const TargetOptions &Opts); + void getVisualStudioDefines(const LangOptions &Opts, MacroBuilder &Builder) const; void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override; +}; - BuiltinVaListKind getBuiltinVaListKind() const override; +// ARM64 MinGW target +class LLVM_LIBRARY_VISIBILITY MinGWARM64TargetInfo + : public WindowsARM64TargetInfo { +public: + MinGWARM64TargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts); - CallingConvCheckResult checkCallingConvention(CallingConv CC) const override; + void getTargetDefines(const LangOptions &Opts, + MacroBuilder &Builder) const override; }; class LLVM_LIBRARY_VISIBILITY AArch64beTargetInfo : public AArch64TargetInfo { |

