aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorTim Northover <Tim.Northover@arm.com>2013-02-18 12:11:32 +0000
committerTim Northover <Tim.Northover@arm.com>2013-02-18 12:11:32 +0000
commit847d2d454944bc56fccb8fbd344e91b6ec678a22 (patch)
tree13f493ff98d01c4ff3e3bc11df2513831629d99f /clang/lib/Basic/Targets.cpp
parenteaf706bef3fba21f522e3c51f6e5f4ae224f1924 (diff)
downloadllvm-847d2d454944bc56fccb8fbd344e91b6ec678a22.zip
llvm-847d2d454944bc56fccb8fbd344e91b6ec678a22.tar.gz
llvm-847d2d454944bc56fccb8fbd344e91b6ec678a22.tar.bz2
AArch64: add atomic support parameters to TargetInfo
This allows Clang to detect and deal wih __atomic_* operations properly on AArch64. Previously we produced an error when encountering them at high optimisation levels. llvm-svn: 175438
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 6f8dfe9b..eaf2e7d0 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -3167,6 +3167,10 @@ public:
WCharType = UnsignedInt;
LongDoubleFormat = &llvm::APFloat::IEEEquad;
+ // AArch64 backend supports 64-bit operations at the moment. In principle
+ // 128-bit is possible if register-pairs are used.
+ MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64;
+
TheCXXABI.set(TargetCXXABI::GenericAArch64);
}
virtual void getTargetDefines(const LangOptions &Opts,