summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/Disassembler
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2011-07-27 23:36:57 +0000
committerOwen Anderson <resistor@mac.com>2011-07-27 23:36:57 +0000
commitb81af2abe0accb7d04cdeec96010300c63a109a8 (patch)
treeecf2e2c8eb687e0b95d2a3bd41be1e6ff7c30132 /llvm/lib/Target/ARM/Disassembler
parent7742b5de7071f059f77a2d963fd910d4056c5f11 (diff)
downloadbcm5719-llvm-b81af2abe0accb7d04cdeec96010300c63a109a8.tar.gz
bcm5719-llvm-b81af2abe0accb7d04cdeec96010300c63a109a8.zip
Refactor and improve the encodings/decodings for addrmode3 loads, and make the writeback operand always the first.
llvm-svn: 136295
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler')
-rw-r--r--llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp11
1 files changed, 1 insertions, 10 deletions
diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
index 1f3920bd8cf..e8c2102c3d6 100644
--- a/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
+++ b/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
@@ -1460,7 +1460,7 @@ static bool DisassembleLdStMiscFrm(MCInst &MI, unsigned Opcode, uint32_t insn,
&& "Invalid arguments");
// Operand 0 of a pre- and post-indexed store is the address base writeback.
- if (isPrePost && isStore) {
+ if (isPrePost) {
assert(OpInfo[OpIdx].RegClass == ARM::GPRRegClassID &&
"Reg operand expected");
MI.addOperand(MCOperand::CreateReg(getRegisterEnum(B, ARM::GPRRegClassID,
@@ -1485,15 +1485,6 @@ static bool DisassembleLdStMiscFrm(MCInst &MI, unsigned Opcode, uint32_t insn,
++OpIdx;
}
- // After dst of a pre- and post-indexed load is the address base writeback.
- if (isPrePost && !isStore) {
- assert(OpInfo[OpIdx].RegClass == ARM::GPRRegClassID &&
- "Reg operand expected");
- MI.addOperand(MCOperand::CreateReg(getRegisterEnum(B, ARM::GPRRegClassID,
- decodeRn(insn))));
- ++OpIdx;
- }
-
// Disassemble the base operand.
if (OpIdx >= NumOps)
return false;
OpenPOWER on IntegriCloud