summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/ARM
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/MC/ARM')
-rw-r--r--llvm/test/MC/ARM/directive-eabi_attribute.s6
-rw-r--r--llvm/test/MC/ARM/thumbv8m.s16
2 files changed, 22 insertions, 0 deletions
diff --git a/llvm/test/MC/ARM/directive-eabi_attribute.s b/llvm/test/MC/ARM/directive-eabi_attribute.s
index 74a51ab7279..e848f774b34 100644
--- a/llvm/test/MC/ARM/directive-eabi_attribute.s
+++ b/llvm/test/MC/ARM/directive-eabi_attribute.s
@@ -209,6 +209,12 @@
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: DIV_use
@ CHECK-OBJ-NEXT: Description: If Available
+ .eabi_attribute Tag_DSP_extension, 0
+@ CHECK: .eabi_attribute 46, 0
+@ CHECK-OBJ: Tag: 46
+@ CHECK-OBJ-NEXT: Value: 0
+@ CHECK-OBJ-NEXT: TagName: DSP_extension
+@ CHECK-OBJ-NEXT: Description: Not Permitted
.eabi_attribute Tag_nodefaults, 0
@ CHECK: .eabi_attribute 64, 0
@ CHECK-OBJ: Tag: 64
diff --git a/llvm/test/MC/ARM/thumbv8m.s b/llvm/test/MC/ARM/thumbv8m.s
index 883503a4101..fe7a2df85b9 100644
--- a/llvm/test/MC/ARM/thumbv8m.s
+++ b/llvm/test/MC/ARM/thumbv8m.s
@@ -4,16 +4,30 @@
// RUN: not llvm-mc -triple=thumbv8m.main -show-encoding < %s 2>%t \
// RUN: | FileCheck --check-prefix=CHECK-MAINLINE --check-prefix=CHECK %s
// RUN: FileCheck --check-prefix=UNDEF-MAINLINE --check-prefix=UNDEF < %t %s
+// RUN: not llvm-mc -triple=thumbv8m.main -mattr=+dsp,+t2xtpk -show-encoding < %s 2>%t \
+// RUN: | FileCheck --check-prefix=CHECK-MAINLINE_DSP --check-prefix=CHECK %s
+// RUN: FileCheck --check-prefix=UNDEF-MAINLINE_DSP --check-prefix=UNDEF < %t %s
// Simple check that baseline is v6M and mainline is v7M
// UNDEF-BASELINE: error: instruction requires: thumb2
// UNDEF-MAINLINE-NOT: error: instruction requires:
+// UNDEF-MAINLINE_DSP-NOT: error: instruction requires:
mov.w r0, r0
// Check that .arm is invalid
// UNDEF: target does not support ARM mode
.arm
+// And only +dsp,+t2xtpk has DSP and t2xtpk instructions
+// UNDEF-BASELINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE_DSP-NOT: error: instruction requires:
+qadd16 r0, r0, r0
+// UNDEF-BASELINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE_DSP-NOT: error: instruction requires:
+uxtab16 r0, r1, r2
+
// Instruction availibility checks
// 'Barrier instructions'
@@ -157,10 +171,12 @@ ttat r0, r1
// UNDEF-BASELINE: error: instruction requires: armv8m.main
// CHECK-MAINLINE: vlldm r5 @ encoding: [0x35,0xec,0x00,0x0a]
+// CHECK-MAINLINE_DSP: vlldm r5 @ encoding: [0x35,0xec,0x00,0x0a]
vlldm r5
// UNDEF-BASELINE: error: instruction requires: armv8m.main
// CHECK-MAINLINE: vlstm r10 @ encoding: [0x2a,0xec,0x00,0x0a]
+// CHECK-MAINLINE_DSP: vlstm r10 @ encoding: [0x2a,0xec,0x00,0x0a]
vlstm r10
// New SYSm's
OpenPOWER on IntegriCloud