Fixes an assertion failure while disassembling ARM rsbs reg/reg form.
authorKevin Enderby <enderby@apple.com>
Wed, 2 Mar 2011 23:08:33 +0000 (23:08 +0000)
committerKevin Enderby <enderby@apple.com>
Wed, 2 Mar 2011 23:08:33 +0000 (23:08 +0000)
Patch by Ted Kremenek!

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

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

index 6e3fe2e039f57ca52e448f0857fdd337732de5ac..173275b084d5054df2c69786c470cd079d1c7257 100644 (file)
@@ -2203,6 +2203,19 @@ def RSBSri : AI1<0b0011, (outs GPR:$Rd), (ins GPR:$Rn, so_imm:$imm), DPFrm,
   let Inst{19-16} = Rn;
   let Inst{11-0} = imm;
 }
+def RSBSrr : AI1<0b0011, (outs GPR:$Rd), (ins GPR:$Rn, GPR:$Rm), DPFrm,
+                 IIC_iALUr, "rsbs", "\t$Rd, $Rn, $Rm",
+                 [/* For disassembly only; pattern left blank */]> {
+  bits<4> Rd;
+  bits<4> Rn;
+  bits<4> Rm;
+  let Inst{11-4} = 0b00000000;
+  let Inst{25} = 0;
+  let Inst{20} = 1;
+  let Inst{3-0} = Rm;
+  let Inst{15-12} = Rd;
+  let Inst{19-16} = Rn;
+}
 def RSBSrs : AI1<0b0011, (outs GPR:$Rd), (ins GPR:$Rn, so_reg:$shift),
                  DPSoRegFrm, IIC_iALUsr, "rsbs", "\t$Rd, $Rn, $shift",
                  [(set GPR:$Rd, (subc so_reg:$shift, GPR:$Rn))]> {
index 0f6aeb7052b91a380111ff87c103cbae4f93eeb7..0ff1e56fa4e5056a2f33049b9c36d8b3a2b49a20 100644 (file)
 
 # CHECK: msr cpsr_fc, r0
 0x00 0xf0 0x29 0xe1
+
+# CHECK: rsbs r6, r7, r8
+0x08 0x60 0x77 0xe0