diff options
author | Owen Anderson <resistor@mac.com> | 2011-08-25 18:30:18 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2011-08-25 18:30:18 +0000 |
commit | 5e30972cfff2a49cb0d5952a74cc10c10b996112 (patch) | |
tree | 5d7d6c296f993e9a51082dbdd61500d214d8400f | |
parent | 69e9464340af6889c163bd867c2b5b8812b7985a (diff) | |
download | bcm5719-llvm-5e30972cfff2a49cb0d5952a74cc10c10b996112.tar.gz bcm5719-llvm-5e30972cfff2a49cb0d5952a74cc10c10b996112.zip |
Port over additional encoding tests to decoding tests, and fix an operand ordering bug this exposed.
llvm-svn: 138575
-rw-r--r-- | llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp | 2 | ||||
-rw-r--r-- | llvm/test/MC/Disassembler/ARM/thumb1.txt | 31 |
2 files changed, 32 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp index 83a8f800608..0d945fdf591 100644 --- a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp +++ b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp @@ -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); diff --git a/llvm/test/MC/Disassembler/ARM/thumb1.txt b/llvm/test/MC/Disassembler/ARM/thumb1.txt index d07cd84abce..3e0722d32ef 100644 --- a/llvm/test/MC/Disassembler/ARM/thumb1.txt +++ b/llvm/test/MC/Disassembler/ARM/thumb1.txt @@ -29,6 +29,29 @@ 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) #------------------------------------------------------------------------------ # CHECK: asrs r2, r3, #32 @@ -442,6 +465,14 @@ 0xd1 0x1a +#------------------------------------------------------------------------------ +# SUB (SP minus immediate) +#------------------------------------------------------------------------------ +# CHECK: sub sp, #12 +# CHECK: sub sp, #508 + +0x83 0xb0 +0xff 0xb0 #------------------------------------------------------------------------------ # SVC |