summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorSilviu Baranga <silviu.baranga@arm.com>2013-10-21 10:59:33 +0000
committerSilviu Baranga <silviu.baranga@arm.com>2013-10-21 10:59:33 +0000
commite5690463e26b6ca8891e34f28fab0ea6d05f54d0 (patch)
tree74615ffdd280b7f881fba71f4d55c6a13dc1c7b4 /clang/lib/Basic
parentf9671dd09d0e58cf98e8339a701c1a9283565c36 (diff)
downloadbcm5719-llvm-e5690463e26b6ca8891e34f28fab0ea6d05f54d0.tar.gz
bcm5719-llvm-e5690463e26b6ca8891e34f28fab0ea6d05f54d0.zip
Set the default hardware division features for ARM cpus. Also set it as default for A32 armv8.
llvm-svn: 193075
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index f5249e54670..843cc1bbf84 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -3760,16 +3760,31 @@ public:
}
void getDefaultFeatures(llvm::StringMap<bool> &Features) const {
+ StringRef ArchName = getTriple().getArchName();
if (CPU == "arm1136jf-s" || CPU == "arm1176jzf-s" || CPU == "mpcore")
Features["vfp2"] = true;
else if (CPU == "cortex-a8" || CPU == "cortex-a9" ||
CPU == "cortex-a9-mp") {
Features["vfp3"] = true;
Features["neon"] = true;
- } else if (CPU == "swift" || CPU == "cortex-a5" ||
- CPU == "cortex-a7" || CPU == "cortex-a15") {
+ }
+ else if (CPU == "cortex-a5") {
+ Features["vfp4"] = true;
+ Features["neon"] = true;
+ } else if (CPU == "swift" || CPU == "cortex-a7" || CPU == "cortex-a15") {
Features["vfp4"] = true;
Features["neon"] = true;
+ Features["hwdiv"] = true;
+ Features["hwdiv-arm"] = true;
+ } else if (CPU == "cortex-r5" || CPU == "cortex-a53"||
+ CPU == "cortex-a57" || CPU == "cortex-m3" ||
+ CPU == "cortex-m4" ||
+ // Enable the hwdiv extension for all v8a AArch32 cores by
+ // default.
+ ArchName == "armv8a" || ArchName == "armv8" ||
+ ArchName == "thumbv8a" || ArchName == "thumbv8") {
+ Features["hwdiv"] = true;
+ Features["hwdiv-arm"] = true;
}
}
OpenPOWER on IntegriCloud