diff options
author | Artyom Skrobov <Artyom.Skrobov@arm.com> | 2013-11-08 16:25:50 +0000 |
---|---|---|
committer | Artyom Skrobov <Artyom.Skrobov@arm.com> | 2013-11-08 16:25:50 +0000 |
commit | 2b01682aa7b9509e9fa1865ebed3d0a7928f5b7a (patch) | |
tree | 0cc870aea0deb45214fadfcd26943517f5732dc3 /test/MC/Disassembler | |
parent | c5c991bf314fb0b9f3b591a0c18d4a45efcfe392 (diff) | |
download | external_llvm-2b01682aa7b9509e9fa1865ebed3d0a7928f5b7a.zip external_llvm-2b01682aa7b9509e9fa1865ebed3d0a7928f5b7a.tar.gz external_llvm-2b01682aa7b9509e9fa1865ebed3d0a7928f5b7a.tar.bz2 |
[ARM] Handling for coprocessor instructions that are undefined starting from ARMv8 (Thumb encodings)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194263 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Disassembler')
-rw-r--r-- | test/MC/Disassembler/ARM/invalid-thumbv8.txt | 167 | ||||
-rw-r--r-- | test/MC/Disassembler/ARM/thumb2-v8.txt | 35 |
2 files changed, 202 insertions, 0 deletions
diff --git a/test/MC/Disassembler/ARM/invalid-thumbv8.txt b/test/MC/Disassembler/ARM/invalid-thumbv8.txt new file mode 100644 index 0000000..4c6b249 --- /dev/null +++ b/test/MC/Disassembler/ARM/invalid-thumbv8.txt @@ -0,0 +1,167 @@ +# RUN: not llvm-mc -disassemble %s -show-encoding -triple thumbv8 2>&1 | FileCheck %s + +# Coprocessors other than CP10, CP11, CP14 and CP15 are undefined in ARMv8; +# but in ARMv7, all these instructions are valid + +# RUN: llvm-mc -triple thumbv7 -show-encoding -disassemble %s | FileCheck %s --check-prefix=CHECK-V7 + +[0x00 0xee 0x00 0x01] +# CHECK-V7: cdp +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xee 0x00 0x01] + +[0x00 0xee 0x00 0x0e] +# CHECK-V7: cdp +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xee 0x00 0x0e] + +[0x00 0xee 0x00 0x0f] +# CHECK-V7: cdp +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xee 0x00 0x0f] + +[0x00 0xfe 0x00 0x01] +# CHECK-V7: cdp2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xfe 0x00 0x01] + +[0x00 0xfe 0x00 0x0e] +# CHECK-V7: cdp2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xfe 0x00 0x0e] + +[0x00 0xfe 0x00 0x0f] +# CHECK-V7: cdp2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xfe 0x00 0x0f] + +[0x00 0xee 0x10 0x01] +# CHECK-V7: mcr +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xee 0x10 0x01] + +[0x00 0xfe 0x10 0x01] +# CHECK-V7: mcr2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xfe 0x10 0x01] + +[0x00 0xfe 0x10 0x0e] +# CHECK-V7: mcr2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xfe 0x10 0x0e] + +[0x00 0xfe 0x10 0x0f] +# CHECK-V7: mcr2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x00 0xfe 0x10 0x0f] + +[0x10 0xee 0x10 0x01] +# CHECK-V7: mrc +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x10 0xee 0x10 0x01] + +[0x10 0xfe 0x10 0x01] +# CHECK-V7: mrc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x10 0xfe 0x10 0x01] + +[0x10 0xfe 0x10 0x0e] +# CHECK-V7: mrc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x10 0xfe 0x10 0x0e] + +[0x10 0xfe 0x10 0x0f] +# CHECK-V7: mrc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x10 0xfe 0x10 0x0f] + +[0x40 0xec 0x00 0x01] +# CHECK-V7: mcrr +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x40 0xec 0x00 0x01] + +[0x40 0xfc 0x00 0x01] +# CHECK-V7: mcrr2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x40 0xfc 0x00 0x01] + +[0x40 0xfc 0x00 0x0e] +# CHECK-V7: mcrr2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x40 0xfc 0x00 0x0e] + +[0x40 0xfc 0x00 0x0f] +# CHECK-V7: mcrr2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x40 0xfc 0x00 0x0f] + +[0x50 0xec 0x00 0x01] +# CHECK-V7: mrrc +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x50 0xec 0x00 0x01] + +[0x50 0xfc 0x00 0x0e] +# CHECK-V7: mrrc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x50 0xfc 0x00 0x0e] + +[0x50 0xfc 0x00 0x0f] +# CHECK-V7: mrrc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x50 0xfc 0x00 0x0f] + +[0x50 0xfc 0x00 0x01] +# CHECK-V7: mrrc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x50 0xfc 0x00 0x01] + +[0x80 0xec 0x00 0x01] +# CHECK-V7: stc +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x80 0xec 0x00 0x01] + +[0x80 0xec 0x00 0x0f] +# CHECK-V7: stc +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x80 0xec 0x00 0x0f] + +[0x80 0xfc 0x00 0x01] +# CHECK-V7: stc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x80 0xfc 0x00 0x01] + +[0x80 0xfc 0x00 0x0e] +# CHECK-V7: stc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x80 0xfc 0x00 0x0e] + +[0x80 0xfc 0x00 0x0f] +# CHECK-V7: stc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x80 0xfc 0x00 0x0f] + +[0x90 0xec 0x00 0x01] +# CHECK-V7: ldc +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x90 0xec 0x00 0x01] + +[0x90 0xec 0x00 0x0f] +# CHECK-V7: ldc +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x90 0xec 0x00 0x0f] + +[0x90 0xfc 0x00 0x01] +# CHECK-V7: ldc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x90 0xfc 0x00 0x01] + +[0x90 0xfc 0x00 0x0e] +# CHECK-V7: ldc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x90 0xfc 0x00 0x0e] + +[0x90 0xfc 0x00 0x0f] +# CHECK-V7: ldc2 +# CHECK: invalid instruction encoding +# CHECK-NEXT: [0x90 0xfc 0x00 0x0f] + diff --git a/test/MC/Disassembler/ARM/thumb2-v8.txt b/test/MC/Disassembler/ARM/thumb2-v8.txt index 04e192f..1b2f095 100644 --- a/test/MC/Disassembler/ARM/thumb2-v8.txt +++ b/test/MC/Disassembler/ARM/thumb2-v8.txt @@ -3,3 +3,38 @@ # CHECK: sevl.w 0x50 0xbf 0xaf 0xf3 0x05 0x80 + + +# These are the only coprocessor instructions that remain defined in ARMv8 +# (The operations on p10/p11 disassemble into FP/NEON instructions) + +0x00 0xee 0x10 0x0e +# CHECK: mcr p14 + +0x00 0xee 0x10 0x0f +# CHECK: mcr p15 + +0x10 0xee 0x10 0x0e +# CHECK: mrc p14 + +0x10 0xee 0x10 0x0f +# CHECK: mrc p15 + +0x40 0xec 0x00 0x0e +# CHECK: mcrr p14 + +0x40 0xec 0x00 0x0f +# CHECK: mcrr p15 + +0x50 0xec 0x00 0x0e +# CHECK: mrrc p14 + +0x50 0xec 0x00 0x0f +# CHECK: mrrc p15 + +0x80 0xec 0x00 0x0e +# CHECK: stc p14 + +0x90 0xec 0x00 0x0e +# CHECK: ldc p14 + |