mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-15 08:49:20 +01: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 d = inst.FD;
|
||||||
int b = inst.FB;
|
int b = inst.FB;
|
||||||
fpr.Lock(b, d);
|
if (d != b) {
|
||||||
fpr.BindToRegister(d, d == b, true);
|
fpr.Lock(b, d);
|
||||||
MOVSD(XMM0, fpr.R(b));
|
fpr.BindToRegister(d);
|
||||||
MOVSD(fpr.R(d), XMM0);
|
MOVSD(fpr.RX(d), fpr.R(b));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Jit64::fcmpx(UGeckoInstruction inst)
|
void Jit64::fcmpx(UGeckoInstruction inst)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user