diff --git a/src/frontend/translate/translate_arm/branch.cpp b/src/frontend/translate/translate_arm/branch.cpp index b9b3596a..8a5066fc 100644 --- a/src/frontend/translate/translate_arm/branch.cpp +++ b/src/frontend/translate/translate_arm/branch.cpp @@ -51,8 +51,8 @@ bool ArmTranslatorVisitor::arm_BLX_reg(Cond cond, Reg m) { // BLX if (ConditionPassed(cond)) { ir.PushRSB(ir.current_location.AdvancePC(4)); - ir.SetRegister(Reg::LR, ir.Imm32(ir.current_location.PC() + 4)); ir.BXWritePC(ir.GetRegister(m)); + ir.SetRegister(Reg::LR, ir.Imm32(ir.current_location.PC() + 4)); ir.SetTerm(IR::Term::ReturnToDispatch{}); return false; }