summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2011-03-28 18:41:58 +0000
committerJohnny Chen <johnny.chen@apple.com>2011-03-28 18:41:58 +0000
commitf9cd13936918972b86cd07265762bd7af5ea919c (patch)
tree0db524b44aac6541efd7b730229c0f5998dcdcb8 /llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h
parentf3070dc40da7aef20e33b7d52bbdb9e1772c28dd (diff)
downloadbcm5719-llvm-f9cd13936918972b86cd07265762bd7af5ea919c.tar.gz
bcm5719-llvm-f9cd13936918972b86cd07265762bd7af5ea919c.zip
Fix ARM disassembly for PLD/PLDW/PLI which suffers from code rot and add some test cases.
Add comments to ThumbDisassemblerCore.h for recent change made for t2PLD disassembly. llvm-svn: 128417
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h')
-rw-r--r--llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h b/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h
index ac6eb67579d..066a8e3178e 100644
--- a/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h
+++ b/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h
@@ -1799,8 +1799,12 @@ static bool DisassembleThumb2PreLoad(MCInst &MI, unsigned Opcode, uint32_t insn,
// A8.6.117 Encoding T2: add = FALSE
unsigned Imm8 = getImm8(insn);
Offset = -1 * Imm8;
- } else // The i12 forms. See, for example, A8.6.117 Encoding T1.
+ } else {
+ // The i12 forms. See, for example, A8.6.117 Encoding T1.
+ // Note that currently t2PLDi12 also handles the previously named t2PLDpci
+ // opcode, that's why we use decodeImm12(insn) which returns +/- imm12.
Offset = decodeImm12(insn);
+ }
MI.addOperand(MCOperand::CreateImm(Offset));
}
++OpIdx;
OpenPOWER on IntegriCloud