Port over additional encoding tests to decoding tests, and fix an operand ordering...
authorOwen Anderson <resistor@mac.com>
Thu, 25 Aug 2011 18:30:18 +0000 (18:30 +0000)
committerOwen Anderson <resistor@mac.com>
Thu, 25 Aug 2011 18:30:18 +0000 (18:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138575 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/Disassembler/ARMDisassembler.cpp
test/MC/Disassembler/ARM/thumb1.txt

index 83a8f800608e0cf47a0e9d68ae1a42b7dd2fb2d1..0d945fdf59195f12d9f7d45c06e439aeaf6d5de2 100644 (file)
@@ -2539,8 +2539,8 @@ static DecodeStatus DecodeThumbAddSPReg(llvm::MCInst &Inst, uint16_t Insn,
     Rdm |= fieldFromInstruction16(Insn, 7, 1) << 3;
 
     CHECK(S, DecodeGPRRegisterClass(Inst, Rdm, Address, Decoder));
-    Inst.addOperand(MCOperand::CreateReg(ARM::SP));
     CHECK(S, DecodeGPRRegisterClass(Inst, Rdm, Address, Decoder));
+    Inst.addOperand(MCOperand::CreateReg(ARM::SP));
   } else if (Inst.getOpcode() == ARM::tADDspr) {
     unsigned Rm = fieldFromInstruction16(Insn, 3, 4);
 
index d07cd84abcefaf15e831c1b0695ff66196a8f32c..3e0722d32efedadab2924c89fddbf8da56aafcf1 100644 (file)
 0xd1 0x18
 0x42 0x44
 
+#------------------------------------------------------------------------------
+# ADD (SP plus immediate)
+#------------------------------------------------------------------------------
+# CHECK: add sp, #508
+# CHECK: add sp, #4
+# CHECK: add r2, sp, #8
+# CHECK: add r2, sp, #1020
+
+0x7f 0xb0
+0x01 0xb0
+0x02 0xaa
+0xff 0xaa
+
+
+#------------------------------------------------------------------------------
+# ADD (SP plus register)
+#------------------------------------------------------------------------------
+# CHECK: add sp, r3
+# CHECK: add r2, sp, r2
+
+0x9d 0x44
+0x6a 0x44
+
 #------------------------------------------------------------------------------
 # ASR (immediate)
 #------------------------------------------------------------------------------
 
 0xd1 0x1a
 
+#------------------------------------------------------------------------------
+# SUB (SP minus immediate)
+#------------------------------------------------------------------------------
+# CHECK: sub sp, #12
+# CHECK: sub sp, #508
+
+0x83 0xb0
+0xff 0xb0
 
 #------------------------------------------------------------------------------
 # SVC