aboutsummaryrefslogtreecommitdiffstats
path: root/utils/TableGen
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2011-03-24 20:42:48 +0000
committerJohnny Chen <johnny.chen@apple.com>2011-03-24 20:42:48 +0000
commite6d69e7dbee88a0a88f252a3e1e3f5f81472cf4b (patch)
tree303555abce960ceb8f0aed03bc6d71c4a40d0a6e /utils/TableGen
parent23670e5b95fcaf88238239729457393b8cc831ff (diff)
downloadexternal_llvm-e6d69e7dbee88a0a88f252a3e1e3f5f81472cf4b.zip
external_llvm-e6d69e7dbee88a0a88f252a3e1e3f5f81472cf4b.tar.gz
external_llvm-e6d69e7dbee88a0a88f252a3e1e3f5f81472cf4b.tar.bz2
ADR was added with the wrong encoding for inst{24-21}, and the ARM decoder was fooled.
Set the encoding bits to {0,?,?,0}, not 0. Plus delegate the disassembly of ADR to the more generic ADDri/SUBri instructions, and add a test case for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128234 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen')
-rw-r--r--utils/TableGen/ARMDecoderEmitter.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/utils/TableGen/ARMDecoderEmitter.cpp b/utils/TableGen/ARMDecoderEmitter.cpp
index 09243e1..b174fa9 100644
--- a/utils/TableGen/ARMDecoderEmitter.cpp
+++ b/utils/TableGen/ARMDecoderEmitter.cpp
@@ -1584,6 +1584,10 @@ ARMDEBackend::populateInstruction(const CodeGenInstruction &CGI,
Name == "MOVr_TC")
return false;
+ // Delegate ADR disassembly to the more generic ADDri/SUBri instructions.
+ if (Name == "ADR")
+ return false;
+
//
// The following special cases are for conflict resolutions.
//