aboutsummaryrefslogtreecommitdiffstats
path: root/test/MC
diff options
context:
space:
mode:
authorBernard Ogden <bogden@arm.com>2013-10-29 14:16:09 +0000
committerBernard Ogden <bogden@arm.com>2013-10-29 14:16:09 +0000
commitc777b2e58c0df1b8e7a8c0c8e78eb53d83549186 (patch)
treecf955d91fae9f7ba1a7a295368d3f1b747907dd7 /test/MC
parent1313a223ed2e8d41b6a13d3738123042b5573b88 (diff)
downloadexternal_llvm-c777b2e58c0df1b8e7a8c0c8e78eb53d83549186.zip
external_llvm-c777b2e58c0df1b8e7a8c0c8e78eb53d83549186.tar.gz
external_llvm-c777b2e58c0df1b8e7a8c0c8e78eb53d83549186.tar.bz2
Test cleanup for v8 instructions
Add some missing tests, factor out a test not specific to v8 into its own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193611 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r--test/MC/ARM/basic-arm-instructions-v8.s8
-rw-r--r--test/MC/ARM/basic-thumb2-instructions-v8.s9
-rw-r--r--test/MC/ARM/invalid-barrier.s28
3 files changed, 38 insertions, 7 deletions
diff --git a/test/MC/ARM/basic-arm-instructions-v8.s b/test/MC/ARM/basic-arm-instructions-v8.s
index 70b1496..4ed83c1 100644
--- a/test/MC/ARM/basic-arm-instructions-v8.s
+++ b/test/MC/ARM/basic-arm-instructions-v8.s
@@ -1,6 +1,6 @@
@ New ARMv8 A32 encodings
-@ RUN: not llvm-mc -triple armv8 -show-encoding -mattr=+db < %s | FileCheck %s --check-prefix=CHECK-V8
+@ RUN: llvm-mc -triple armv8 -show-encoding < %s | FileCheck %s --check-prefix=CHECK-V8
@ RUN: not llvm-mc -triple armv7 -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK-V7
@ HLT
@@ -23,7 +23,6 @@
dmb oshld
dmb nshld
dmb ld
- dmb #20
@ CHECK-V8: dmb ishld @ encoding: [0x59,0xf0,0x7f,0xf5]
@ CHECK-V8: dmb oshld @ encoding: [0x51,0xf0,0x7f,0xf5]
@@ -33,7 +32,6 @@
@ CHECK-V7: error: invalid operand for instruction
@ CHECK-V7: error: invalid operand for instruction
@ CHECK-V7: error: invalid operand for instruction
-@ CHECK-V7: error: immediate value out of range
@------------------------------------------------------------------------------
@ DSB (v8 barriers)
@@ -50,10 +48,12 @@
@ CHECK-V7: error: invalid operand for instruction
@ CHECK-V7: error: invalid operand for instruction
@ CHECK-V7: error: invalid operand for instruction
+@ CHECK-V7: error: invalid operand for instruction
@------------------------------------------------------------------------------
@ SEVL
@------------------------------------------------------------------------------
sevl
-@ CHECK: sevl @ encoding: [0x05,0xf0,0x20,0xe3]
+@ CHECK-V8: sevl @ encoding: [0x05,0xf0,0x20,0xe3]
+@ CHECK-V7: error: instruction requires: armv8
diff --git a/test/MC/ARM/basic-thumb2-instructions-v8.s b/test/MC/ARM/basic-thumb2-instructions-v8.s
index ba6f0da..a7882ae 100644
--- a/test/MC/ARM/basic-thumb2-instructions-v8.s
+++ b/test/MC/ARM/basic-thumb2-instructions-v8.s
@@ -1,6 +1,6 @@
@ New ARMv8 T32 encodings
-@ RUN: not llvm-mc -triple thumbv8 -show-encoding -mattr=+db < %s | FileCheck %s --check-prefix=CHECK-V8
+@ RUN: llvm-mc -triple thumbv8 -show-encoding < %s | FileCheck %s --check-prefix=CHECK-V8
@ RUN: not llvm-mc -triple thumbv7 -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK-V7
@ HLT
@@ -42,7 +42,6 @@
dmb oshld
dmb nshld
dmb ld
- dmb #20
@ CHECK-V8: dmb ishld @ encoding: [0xbf,0xf3,0x59,0x8f]
@ CHECK-V8: dmb oshld @ encoding: [0xbf,0xf3,0x51,0x8f]
@@ -52,7 +51,6 @@
@ CHECK-V7: error: invalid operand for instruction
@ CHECK-V7: error: invalid operand for instruction
@ CHECK-V7: error: invalid operand for instruction
-@ CHECK-V7: error: immediate value out of range
@------------------------------------------------------------------------------
@ DSB (v8 barriers)
@@ -69,6 +67,7 @@
@ CHECK-V7: error: invalid operand for instruction
@ CHECK-V7: error: invalid operand for instruction
@ CHECK-V7: error: invalid operand for instruction
+@ CHECK-V7: error: invalid operand for instruction
@------------------------------------------------------------------------------
@ SEVL
@@ -82,3 +81,7 @@
@ CHECK-V8: sevl.w @ encoding: [0xaf,0xf3,0x05,0x80]
@ CHECK-V8: it ge @ encoding: [0xa8,0xbf]
@ CHECK-V8: sevlge @ encoding: [0x50,0xbf]
+@ CHECK-V7: error: instruction requires: armv8
+@ CHECK-V7: error: instruction requires: armv8
+@ CHECK-V7: error:
+@ CHECK-V7: error: instruction requires: armv8
diff --git a/test/MC/ARM/invalid-barrier.s b/test/MC/ARM/invalid-barrier.s
new file mode 100644
index 0000000..29fcd8e
--- /dev/null
+++ b/test/MC/ARM/invalid-barrier.s
@@ -0,0 +1,28 @@
+@ RUN: not llvm-mc -triple=armv7 -show-encoding < %s 2>&1 | FileCheck %s
+@ RUN: not llvm-mc -triple=thumbv7 -show-encoding < %s 2>&1 | FileCheck %s
+
+@------------------------------------------------------------------------------
+@ DMB
+@------------------------------------------------------------------------------
+ dmb #0x10
+ dmb imaginary_scope
+
+@ CHECK: error: immediate value out of range
+@ CHECK: error: invalid operand for instruction
+
+@------------------------------------------------------------------------------
+@ DSB
+@------------------------------------------------------------------------------
+ dsb #0x10
+ dsb imaginary_scope
+@ CHECK: error: immediate value out of range
+@ CHECK: error: invalid operand for instruction
+
+@------------------------------------------------------------------------------
+@ ISB
+@------------------------------------------------------------------------------
+ isb #0x1f
+ isb imaginary_domain
+
+@ CHECK: error: immediate value out of range
+@ CHECK: error: invalid operand for instruction