aboutsummaryrefslogtreecommitdiffstats
path: root/utils/TableGen
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2011-03-24 23:21:14 +0000
committerJohnny Chen <johnny.chen@apple.com>2011-03-24 23:21:14 +0000
commit1090d7711b145da53089f63336b173941d48d6f2 (patch)
tree0c50d9af1d55eb30d59fee47629e7f407c350c51 /utils/TableGen
parent439e0c79f54a10cd0950e0d2eefb7ecc5c9647de (diff)
downloadexternal_llvm-1090d7711b145da53089f63336b173941d48d6f2.zip
external_llvm-1090d7711b145da53089f63336b173941d48d6f2.tar.gz
external_llvm-1090d7711b145da53089f63336b173941d48d6f2.tar.bz2
The ARM disassembler was confused with the 16-bit tSTMIA instruction.
According to A8.6.189 STM/STMIA/STMEA (Encoding T1), there's only tSTMIA_UPD available. Ignore tSTMIA for the decoder emitter and add a test case for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128246 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen')
-rw-r--r--utils/TableGen/ARMDecoderEmitter.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/utils/TableGen/ARMDecoderEmitter.cpp b/utils/TableGen/ARMDecoderEmitter.cpp
index b174fa9..728e669 100644
--- a/utils/TableGen/ARMDecoderEmitter.cpp
+++ b/utils/TableGen/ARMDecoderEmitter.cpp
@@ -1615,6 +1615,11 @@ ARMDEBackend::populateInstruction(const CodeGenInstruction &CGI,
if (!thumbInstruction(Form))
return false;
+ // A8.6.189 STM / STMIA / STMEA -- Encoding T1
+ // There's only STMIA_UPD for Thumb1.
+ if (Name == "tSTMIA")
+ return false;
+
// On Darwin R9 is call-clobbered. Ignore the non-Darwin counterparts.
if (Name == "tBL" || Name == "tBLXi" || Name == "tBLXr")
return false;