summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets/AArch64.h
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2017-08-13 19:42:17 +0000
committerMartin Storsjo <martin@martin.st>2017-08-13 19:42:17 +0000
commit31cac7a67c58d0d5e7615089ead35a3ab24ed508 (patch)
tree2319bea22dd9d38d43071708be759e0d3b250f89 /clang/lib/Basic/Targets/AArch64.h
parent23413195649d0cf6f3860ae8b5fb115b35032075 (diff)
downloadbcm5719-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.h28
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 {
OpenPOWER on IntegriCloud