diff options
author | Tim Northover <tnorthover@apple.com> | 2013-07-19 10:05:04 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2013-07-19 10:05:04 +0000 |
commit | 38c6ff6c111fcc53debb9e2880f89e2dd0676217 (patch) | |
tree | 4af833fe6c478fcfd619799e9684b171961d072a /test/MC/Disassembler/ARM/invalid-thumbv7-xfail.txt | |
parent | c09228dba3be474d9835cad19adc4419224872f3 (diff) | |
download | llvm-38c6ff6c111fcc53debb9e2880f89e2dd0676217.tar.gz llvm-38c6ff6c111fcc53debb9e2880f89e2dd0676217.tar.bz2 llvm-38c6ff6c111fcc53debb9e2880f89e2dd0676217.tar.xz |
Improve llvm-mc disassembler mode and refactor ARM tests to use it
This allows "llvm-mc -disassemble" to accept two new features:
+ Using comma as a byte separator
+ Grouping bytes with '[' and ']' pairs.
The behaviour outside a [...] group is unchanged. But within the group once
llvm-mc encounters a true error, it stops rather than trying to resynchronise
the stream at the next byte. This is more useful for disassembly tests, where
we have an almost-instruction in mind and don't care what the misaligned
interpretation would be. Particularly if it means llvm-mc won't actually see
the next intended almost-instruction.
As a side effect, this means llvm-mc can disassemble its own -show-encoding
output if copy-pasted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186661 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Disassembler/ARM/invalid-thumbv7-xfail.txt')
-rw-r--r-- | test/MC/Disassembler/ARM/invalid-thumbv7-xfail.txt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/MC/Disassembler/ARM/invalid-thumbv7-xfail.txt b/test/MC/Disassembler/ARM/invalid-thumbv7-xfail.txt new file mode 100644 index 0000000000..ca5dd65e0a --- /dev/null +++ b/test/MC/Disassembler/ARM/invalid-thumbv7-xfail.txt @@ -0,0 +1,38 @@ +# RUN: llvm-mc -disassemble -triple thumbv7 2>&1 | FileCheck %s +# XFAIL: * + +#------------------------------------------------------------------------------ +# Undefined encodings for ldrexd/strexd +#------------------------------------------------------------------------------ + +# FIXME: "ldrexd r8, r8, [r2]" +# Rt == Rt2 is UNPREDICTABLE + +[0xd2 0xe8 0x7f 0x88] +# CHECK: potentially undefined instruction encoding +# CHECK-NEXT: [0xd2 0xe8 0x7f 0x88] + +# Opcode=2127 Name=t2STREXB Format=ARM_FORMAT_THUMBFRM(25) +# 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +# ------------------------------------------------------------------------------------------------- +# | 1: 1: 1: 0| 1: 0: 0: 0| 1: 1: 0: 0| 0: 0: 1: 0| 1: 0: 0: 0| 1: 1: 1: 1| 0: 1: 0: 0| 0: 0: 1: 0| +# ------------------------------------------------------------------------------------------------- +# +# if d == n || d == t then UNPREDICTABLE + +[0xc2 0xe8 0x42 0x8f] +# CHECK: potentially undefined instruction encoding +# CHECK-NEXT: [0xc2 0xe8 0x42 0x8f] + +# Opcode=2128 Name=t2STREXD Format=ARM_FORMAT_THUMBFRM(25) +# 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +# ------------------------------------------------------------------------------------------------- +# | 1: 1: 1: 0| 1: 0: 0: 0| 1: 1: 0: 0| 0: 0: 1: 0| 0: 1: 1: 1| 1: 0: 0: 0| 0: 1: 1: 1| 1: 0: 0: 0| +# ------------------------------------------------------------------------------------------------- +# +# if d == n || d == t || d == t2 then UNPREDICTABLE + +# FIXME: should be unpredictable since it's "strexd r8, r7, r8, [r2]" +[0xc2 0xe8 0x78 0x78] +# CHECK: potentially undefined instruction encoding +# CHECK-NEXT: [0xc2 0xe8 0x78 0x78] |