aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtyom Skrobov <Artyom.Skrobov@arm.com>2014-01-27 18:44:25 +0000
committerArtyom Skrobov <Artyom.Skrobov@arm.com>2014-01-27 18:44:25 +0000
commit1c66c3a7f2a4480afff1590a0d58482ef1e85391 (patch)
tree913f4b57baacd53abe31b18f369eaaa725518889
parent1a2292614c23d98a8421ee7de872ac18a543be4c (diff)
downloadllvm-1c66c3a7f2a4480afff1590a0d58482ef1e85391.zip
llvm-1c66c3a7f2a4480afff1590a0d58482ef1e85391.tar.gz
llvm-1c66c3a7f2a4480afff1590a0d58482ef1e85391.tar.bz2
Cortex-M3 and Cortex-M4 should not enable hwdiv-arm
llvm-svn: 200233
-rw-r--r--clang/lib/Basic/Targets.cpp5
-rw-r--r--clang/test/Driver/arm-cortex-cpus.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 94c8ea9..b313ac4 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -3832,14 +3832,15 @@ public:
Features["hwdiv"] = true;
Features["hwdiv-arm"] = true;
Features["crc"] = true;
- } else if (CPU == "cortex-r5" || CPU == "cortex-m3" ||
- CPU == "cortex-m4" ||
+ } else if (CPU == "cortex-r5" ||
// 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;
+ } else if (CPU == "cortex-m3" || CPU == "cortex-m4") {
+ Features["hwdiv"] = true;
}
}
diff --git a/clang/test/Driver/arm-cortex-cpus.c b/clang/test/Driver/arm-cortex-cpus.c
index ddfbc6e..80c0f10 100644
--- a/clang/test/Driver/arm-cortex-cpus.c
+++ b/clang/test/Driver/arm-cortex-cpus.c
@@ -158,3 +158,9 @@
// RUN: %clang -target arm -mcpu=cortex-a53 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-CPUV8A-THUMB %s
// RUN: %clang -target arm -mcpu=cortex-a57 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-CPUV8A-THUMB %s
// CHECK-CPUV8A-THUMB: "-cc1"{{.*}} "-triple" "thumbv8-{{.*}}
+
+// ================== Check that Cortex-M cores don't enable hwdiv-arm (and don't emit Tag_DIV_use)
+// RUN: %clang -target arm-linux-gnueabi -mcpu=cortex-m3 -S %s -o - | FileCheck -check-prefix=CHECK-HWDIV-ARM %s
+// RUN: %clang -target arm-linux-gnueabi -mcpu=cortex-m4 -S %s -o - | FileCheck -check-prefix=CHECK-HWDIV-ARM %s
+// CHECK-HWDIV-ARM-NOT: .eabi_attribute 44
+