Add conditional register cache flushing to JIT64's twx instruction.
This commit is contained in:
parent
06e8c7d7c9
commit
b4ec70f0ac
|
@ -2182,9 +2182,6 @@ void Jit64::twx(UGeckoInstruction inst)
|
|||
|
||||
s32 a = inst.RA;
|
||||
|
||||
gpr.Flush();
|
||||
fpr.Flush();
|
||||
|
||||
if (inst.OPCD == 3) // twi
|
||||
CMP(32, gpr.R(a), gpr.R(inst.RB));
|
||||
else // tw
|
||||
|
@ -2209,6 +2206,10 @@ void Jit64::twx(UGeckoInstruction inst)
|
|||
}
|
||||
LOCK();
|
||||
OR(32, M((void *)&PowerPC::ppcState.Exceptions), Imm32(EXCEPTION_PROGRAM));
|
||||
|
||||
gpr.Flush(FLUSH_MAINTAIN_STATE);
|
||||
fpr.Flush(FLUSH_MAINTAIN_STATE);
|
||||
|
||||
WriteExceptionExit();
|
||||
|
||||
SetJumpTarget(dont_trap);
|
||||
|
|
Loading…
Reference in New Issue