aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2011-03-25 00:17:42 +0000
committerJohnny Chen <johnny.chen@apple.com>2011-03-25 00:17:42 +0000
commitef74e9ab409bd75c3679caae72bf233aa1faae49 (patch)
tree404aad36d6d79c5aedcc34bf221c11f65e4acee0
parent8c13335c9ad8b558e548e81a5adbd958f1e04753 (diff)
delegate the disassembly of t2ADR to the more generic t2ADDri12/t2SUBri12 instructions, and add a test case for that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128249 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/MC/Disassembler/ARM/thumb-tests.txt3
-rw-r--r--utils/TableGen/ARMDecoderEmitter.cpp5
2 files changed, 8 insertions, 0 deletions
diff --git a/test/MC/Disassembler/ARM/thumb-tests.txt b/test/MC/Disassembler/ARM/thumb-tests.txt
index ae28082dec..22b1da792b 100644
--- a/test/MC/Disassembler/ARM/thumb-tests.txt
+++ b/test/MC/Disassembler/ARM/thumb-tests.txt
@@ -148,3 +148,6 @@
# CHECK: ldmia r5!, {r0, r1, r2, r3, r4}
0x1f 0xcd
+
+# CHECK: addw r0, pc, #1050
+0x0f 0xf2 0x1a 0x40
diff --git a/utils/TableGen/ARMDecoderEmitter.cpp b/utils/TableGen/ARMDecoderEmitter.cpp
index 914ea0ee94..e48ac1e678 100644
--- a/utils/TableGen/ARMDecoderEmitter.cpp
+++ b/utils/TableGen/ARMDecoderEmitter.cpp
@@ -1632,6 +1632,11 @@ ARMDEBackend::populateInstruction(const CodeGenInstruction &CGI,
if (Name == "tADR")
return false;
+ // Delegate t2ADR disassembly to the more generic t2ADDri12/t2SUBri12
+ // instructions.
+ if (Name == "t2ADR")
+ return false;
+
// Ignore tADDrSP, tADDspr, and tPICADD, prefer the generic tADDhirr.
// Ignore t2SUBrSPs, prefer the t2SUB[S]r[r|s].
// Ignore t2ADDrSPs, prefer the t2ADD[S]r[r|s].