mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-13 17:38:39 +00:00
Fix a bug in the ARM disassembler for wide branch conditional instructions
where the symbolic operand's displacement was incorrectly shifted left by 1. rdar://11387046 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156212 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
917644d0c3
commit
ce734d5ffe
@ -3016,7 +3016,7 @@ static DecodeStatus DecodeThumbBROperand(MCInst &Inst, unsigned Val,
|
|||||||
|
|
||||||
static DecodeStatus DecodeT2BROperand(MCInst &Inst, unsigned Val,
|
static DecodeStatus DecodeT2BROperand(MCInst &Inst, unsigned Val,
|
||||||
uint64_t Address, const void *Decoder) {
|
uint64_t Address, const void *Decoder) {
|
||||||
if (!tryAddingSymbolicOperand(Address, Address + SignExtend32<22>(Val<<1) + 4,
|
if (!tryAddingSymbolicOperand(Address, Address + SignExtend32<22>(Val) + 4,
|
||||||
true, 4, Inst, Decoder))
|
true, 4, Inst, Decoder))
|
||||||
Inst.addOperand(MCOperand::CreateImm(SignExtend32<21>(Val)));
|
Inst.addOperand(MCOperand::CreateImm(SignExtend32<21>(Val)));
|
||||||
return MCDisassembler::Success;
|
return MCDisassembler::Success;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user