mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-25 16:24:23 +00:00
Fix Bug 9386 - ARM disassembler failed to disassemble conditional bx
Modified the patch to .td file supplied by Jyun-Yan You. Add a test case and modified ARMDisassemblerCore.cpp a little bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131859 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -895,8 +895,9 @@ static bool DisassembleBrFrm(MCInst &MI, unsigned Opcode, uint32_t insn,
|
||||
}
|
||||
|
||||
// Misc. Branch Instructions.
|
||||
// BLX, BLXi, BX
|
||||
// BX, BX_RET
|
||||
// BX_RET, MOVPCLR
|
||||
// BLX, BLX_pred, BX, BX_pred
|
||||
// BLXi
|
||||
static bool DisassembleBrMiscFrm(MCInst &MI, unsigned Opcode, uint32_t insn,
|
||||
unsigned short NumOps, unsigned &NumOpsAdded, BO B) {
|
||||
|
||||
@ -913,7 +914,7 @@ static bool DisassembleBrMiscFrm(MCInst &MI, unsigned Opcode, uint32_t insn,
|
||||
|
||||
// BLX and BX take one GPR reg.
|
||||
if (Opcode == ARM::BLX || Opcode == ARM::BLX_pred ||
|
||||
Opcode == ARM::BX) {
|
||||
Opcode == ARM::BX || Opcode == ARM::BX_pred) {
|
||||
assert(NumOps >= 1 && OpInfo[OpIdx].RegClass == ARM::GPRRegClassID &&
|
||||
"Reg operand expected");
|
||||
MI.addOperand(MCOperand::CreateReg(getRegisterEnum(B, ARM::GPRRegClassID,
|
||||
|
Reference in New Issue
Block a user