summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Parker <sam.parker@arm.com>2017-09-18 14:46:14 +0000
committerSam Parker <sam.parker@arm.com>2017-09-18 14:46:14 +0000
commitdf2a024df200fcc986d7f46adf57f2db7cff8bf7 (patch)
tree8652a3c884c5c04ec28b8623e515bcee6de14bab
parent5a79f317ae8318445d3cd4141e80dabf02c28f7d (diff)
[AArch64] Add V8_2aOps feature to Cortex-A55 and 75
Add the missing hardware features the ProcA55 and ProcA75 feature. These are already enabled via the target parser, but I had missed them in the backend. Differential Revision: https://reviews.llvm.org/D37974 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313535 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/AArch64/AArch64.td2
-rw-r--r--test/MC/AArch64/armv8.1a-lse.s4
-rw-r--r--test/MC/AArch64/crc.s5
-rw-r--r--test/MC/AArch64/ras-extension.s2
4 files changed, 13 insertions, 0 deletions
diff --git a/lib/Target/AArch64/AArch64.td b/lib/Target/AArch64/AArch64.td
index 8ff7f40ade4..8d2934ee8ab 100644
--- a/lib/Target/AArch64/AArch64.td
+++ b/lib/Target/AArch64/AArch64.td
@@ -215,6 +215,7 @@ def ProcA53 : SubtargetFeature<"a53", "ARMProcFamily", "CortexA53",
def ProcA55 : SubtargetFeature<"a55", "ARMProcFamily", "CortexA55",
"Cortex-A55 ARM processors", [
+ HasV8_2aOps,
FeatureCrypto,
FeatureFPARMv8,
FeatureFuseAES,
@@ -262,6 +263,7 @@ def ProcA73 : SubtargetFeature<"a73", "ARMProcFamily", "CortexA73",
def ProcA75 : SubtargetFeature<"a75", "ARMProcFamily", "CortexA75",
"Cortex-A75 ARM processors", [
+ HasV8_2aOps,
FeatureCrypto,
FeatureFPARMv8,
FeatureFuseAES,
diff --git a/test/MC/AArch64/armv8.1a-lse.s b/test/MC/AArch64/armv8.1a-lse.s
index 6143d0e1380..3da5e3c97b7 100644
--- a/test/MC/AArch64/armv8.1a-lse.s
+++ b/test/MC/AArch64/armv8.1a-lse.s
@@ -1,5 +1,9 @@
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.1a,+lse -show-encoding < %s 2> %t | FileCheck %s
// RUN: FileCheck -check-prefix=CHECK-ERROR < %t %s
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mcpu=cortex-a55 -show-encoding < %s 2> %t | FileCheck %s
+// RUN: FileCheck -check-prefix=CHECK-ERROR < %t %s
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mcpu=cortex-a75 -show-encoding < %s 2> %t | FileCheck %s
+// RUN: FileCheck -check-prefix=CHECK-ERROR < %t %s
.text
cas w0, w1, [x2]
diff --git a/test/MC/AArch64/crc.s b/test/MC/AArch64/crc.s
index f0e4a5aa753..597ba3c257a 100644
--- a/test/MC/AArch64/crc.s
+++ b/test/MC/AArch64/crc.s
@@ -1,6 +1,11 @@
// RUN: llvm-mc -triple aarch64-- -mattr=+crc %s 2>&1 |\
// RUN: FileCheck %s --check-prefix=CRC
+// RUN: llvm-mc -triple aarch64-- -mcpu=cortex-a55 %s 2>&1 |\
+// RUN: FileCheck %s --check-prefix=CRC
+// RUN: llvm-mc -triple aarch64-- -mcpu=cortex-a75 %s 2>&1 |\
+// RUN: FileCheck %s --check-prefix=CRC
+
// RUN: not llvm-mc -triple aarch64-- %s 2>&1 |\
// RUN: FileCheck %s --check-prefix=NOCRC
// RUN: not llvm-mc -triple aarch64-- -mcpu=cyclone %s 2>&1 |\
diff --git a/test/MC/AArch64/ras-extension.s b/test/MC/AArch64/ras-extension.s
index ac4a8099e35..e8d1f62e6bd 100644
--- a/test/MC/AArch64/ras-extension.s
+++ b/test/MC/AArch64/ras-extension.s
@@ -1,4 +1,6 @@
// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+ras < %s | FileCheck %s
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mcpu=cortex-a55 < %s | FileCheck %s
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mcpu=cortex-a75 < %s | FileCheck %s
esb
// CHECK: esb // encoding: [0x1f,0x22,0x03,0xd5]