mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-03-07 11:16:27 +00:00
translate_arm/branch: Read-after-write in arm_BLX_reg
When BLX LR is translated, BXWritePC(GetRegister(Reg::LR)) was executed after the SetRegister(Reg::LR, _) update was done.
This commit is contained in:
@@ -51,8 +51,8 @@ bool ArmTranslatorVisitor::arm_BLX_reg(Cond cond, Reg m) {
|
||||
// BLX <Rm>
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user