mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-27 06:35:39 +00:00
Jit64: fix fmrx regression
Revision ddaf29e039d1736be1ca48c1c0b6af1c8d4ec47d introduced a register corruption bug (#6825). Since fmrx/MOVSD only modifies ps0 but we save both ps0 and ps1 in one xmm register, not loading the previous value when binding to a x64 register trashed ps1. But hey, a good opportunity to shave off one more instruction ;)
This commit is contained in:
parent
4f13f6ecaa
commit
bcefa880e4
@ -229,11 +229,12 @@ void Jit64::fmrx(UGeckoInstruction inst)
|
||||
}
|
||||
int d = inst.FD;
|
||||
int b = inst.FB;
|
||||
fpr.Lock(b, d);
|
||||
fpr.BindToRegister(d, d == b, true);
|
||||
MOVSD(XMM0, fpr.R(b));
|
||||
MOVSD(fpr.R(d), XMM0);
|
||||
fpr.UnlockAll();
|
||||
if (d != b) {
|
||||
fpr.Lock(b, d);
|
||||
fpr.BindToRegister(d);
|
||||
MOVSD(fpr.RX(d), fpr.R(b));
|
||||
fpr.UnlockAll();
|
||||
}
|
||||
}
|
||||
|
||||
void Jit64::fcmpx(UGeckoInstruction inst)
|
||||
|
Loading…
x
Reference in New Issue
Block a user