mirror of
https://github.com/Vita3K/dynarmic.git
synced 2024-12-02 18:46:20 +00:00
A32/barrier: Correct PC assignment within ISB
The SetRegister() IR function doesn't allow specifying the PC as a register. This is a discrepancy that slipped through (my bad). Instead, we can use BranchWritePC(), like how the other similar PC modifying locations do it.
This commit is contained in:
parent
8b2d8231ba
commit
f96036b3f1
@ -20,7 +20,7 @@ bool ArmTranslatorVisitor::arm_DSB([[maybe_unused]] Imm4 option) {
|
||||
|
||||
bool ArmTranslatorVisitor::arm_ISB([[maybe_unused]] Imm4 option) {
|
||||
ir.InstructionSynchronizationBarrier();
|
||||
ir.SetRegister(Reg::PC, ir.Imm32(ir.current_location.PC() + 4));
|
||||
ir.BranchWritePC(ir.Imm32(ir.current_location.PC() + 4));
|
||||
ir.SetTerm(IR::Term::ReturnToDispatch{});
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user