diff options
| author | Silviu Baranga <silviu.baranga@arm.com> | 2013-10-21 10:59:33 +0000 |
|---|---|---|
| committer | Silviu Baranga <silviu.baranga@arm.com> | 2013-10-21 10:59:33 +0000 |
| commit | e5690463e26b6ca8891e34f28fab0ea6d05f54d0 (patch) | |
| tree | 74615ffdd280b7f881fba71f4d55c6a13dc1c7b4 /clang/lib/Basic | |
| parent | f9671dd09d0e58cf98e8339a701c1a9283565c36 (diff) | |
| download | bcm5719-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.cpp | 19 |
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; } } |

