summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorJames Molloy <james.molloy@arm.com>2014-09-15 11:25:38 +0000
committerJames Molloy <james.molloy@arm.com>2014-09-15 11:25:38 +0000
commit0ffb0939316df3f37cb921626be53caa26ee8dd3 (patch)
tree3061862a0a03bf2700f8bfb2d09672915ec615f1 /clang/lib/Basic
parentc58c70e2f37f666faad94ef3bfab6d63eb5b0837 (diff)
downloadbcm5719-llvm-0ffb0939316df3f37cb921626be53caa26ee8dd3.tar.gz
bcm5719-llvm-0ffb0939316df3f37cb921626be53caa26ee8dd3.zip
[ARM] Add ACLE predefines: maxmin, rounding and h/w integer division
Patch by Assad Hashmi! llvm-svn: 217760
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 9a307d30ab9..b6bcc84b8f4 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -3983,6 +3983,10 @@ public:
// __ARM_ARCH is defined as an integer value indicating the current ARM ISA
Builder.defineMacro("__ARM_ARCH", CPUArch.substr(0, 1));
+ if (CPUArch[0] >= '8') {
+ Builder.defineMacro("__ARM_FEATURE_NUMERIC_MAXMIN");
+ Builder.defineMacro("__ARM_FEATURE_DIRECTED_ROUNDING");
+ }
// __ARM_ARCH_ISA_ARM is defined to 1 if the core supports the ARM ISA. It
// is not defined for the M-profile.
@@ -4478,6 +4482,10 @@ public:
Builder.defineMacro("__ARM_FEATURE_CLZ");
Builder.defineMacro("__ARM_FEATURE_FMA");
Builder.defineMacro("__ARM_FEATURE_DIV");
+ Builder.defineMacro("__ARM_FEATURE_IDIV"); // As specified in ACLE
+ Builder.defineMacro("__ARM_FEATURE_DIV"); // For backwards compatibility
+ Builder.defineMacro("__ARM_FEATURE_NUMERIC_MAXMIN");
+ Builder.defineMacro("__ARM_FEATURE_DIRECTED_ROUNDING");
Builder.defineMacro("__ARM_ALIGN_MAX_STACK_PWR", "4");
OpenPOWER on IntegriCloud