ARM: BXJ should be BX when there is no J support
This commit is contained in:
parent
1fcd389fa3
commit
f64c8bafd2
|
@ -67,10 +67,8 @@ format DataOp {
|
|||
1: decode OPCODE_7 {
|
||||
0x0: decode MISC_OPCODE {
|
||||
0x0: ArmMsrMrs::armMsrMrs();
|
||||
0x1: ArmBxClz::armBxClz();
|
||||
0x2: decode OPCODE {
|
||||
0x9: WarnUnimpl::bxj();
|
||||
}
|
||||
// bxj unimplemented, treated as bx
|
||||
0x1,0x2: ArmBxClz::armBxClz();
|
||||
0x3: decode OPCODE {
|
||||
0x9: ArmBlxReg::armBlxReg();
|
||||
}
|
||||
|
|
|
@ -207,7 +207,12 @@ def format Thumb32BranchesAndMiscCtrl() {{
|
|||
break;
|
||||
}
|
||||
case 0x3c:
|
||||
return new WarnUnimplemented("bxj", machInst);
|
||||
{
|
||||
// On systems that don't support bxj, bxj == bx
|
||||
return new BxReg(machInst,
|
||||
(IntRegIndex)(uint32_t)bits(machInst, 19, 16),
|
||||
COND_UC);
|
||||
}
|
||||
case 0x3d:
|
||||
{
|
||||
const uint32_t imm32 = bits(machInst, 7, 0);
|
||||
|
|
Loading…
Reference in a new issue