LDRT and LDRBT was incorrectly tagged as IndexModeNone during the refactorings (r119821).
authorJohnny Chen <johnny.chen@apple.com>
Tue, 22 Mar 2011 22:28:49 +0000 (22:28 +0000)
committerJohnny Chen <johnny.chen@apple.com>
Tue, 22 Mar 2011 22:28:49 +0000 (22:28 +0000)
We now tag them as IndexModePost.

This fixed http://llvm.org/bugs/show_bug.cgi?id=9530.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128113 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td
test/MC/Disassembler/ARM/arm-tests.txt

index 0c07d70934bd85b397342d1c2234ad17fd487d1c..d18c0ee1a5516f026c1d36abd0f9adba34a6b5cb 100644 (file)
@@ -1700,13 +1700,13 @@ defm LDRD :  AI3_ldridx<0b1101, 0, "ldrd", IIC_iLoad_d_ru>;
 // LDRT, LDRBT, LDRSBT, LDRHT, LDRSHT are for disassembly only.
 let mayLoad = 1, neverHasSideEffects = 1 in {
 def LDRT : AI2ldstidx<1, 0, 0, (outs GPR:$dst, GPR:$base_wb),
-                   (ins GPR:$base, am2offset:$offset), IndexModeNone,
+                   (ins GPR:$base, am2offset:$offset), IndexModePost,
                    LdFrm, IIC_iLoad_ru,
                    "ldrt", "\t$dst, [$base], $offset", "$base = $base_wb", []> {
   let Inst{21} = 1; // overwrite
 }
 def LDRBT : AI2ldstidx<1, 1, 0, (outs GPR:$dst, GPR:$base_wb),
-                  (ins GPR:$base, am2offset:$offset), IndexModeNone,
+                  (ins GPR:$base, am2offset:$offset), IndexModePost,
                   LdFrm, IIC_iLoad_bh_ru,
                   "ldrbt", "\t$dst, [$base], $offset", "$base = $base_wb", []> {
   let Inst{21} = 1; // overwrite
index 4f7dcff8e4b37ab436922245304854c4b3fe5a26..b9645e17e0d4b9e5a241ec4c5977cbbd7951aaa1 100644 (file)
 
 # CHECK:       ldrdeq  r2, [r0], -r12
 0xdc 0x24 0x00 0x00
+
+# CHECK:       ldrbt   r3, [r4], -r5, lsl #12
+0x05 0x36 0x74 0xe6