Merge pull request #450 from Tilka/fmrx

Jit64: revert fmrx revert
This commit is contained in:
Ryan Houdek 2014-06-06 20:53:21 -05:00
commit c118632cde
1 changed files with 14 additions and 3 deletions

View File

@ -210,10 +210,21 @@ void Jit64::fmrx(UGeckoInstruction inst)
int d = inst.FD; int d = inst.FD;
int b = inst.FB; int b = inst.FB;
if (d == b)
return;
fpr.Lock(b, d); fpr.Lock(b, d);
fpr.BindToRegister(d, true, true);
MOVSD(XMM0, fpr.R(b)); // We don't need to load d, but if it is loaded, we need to mark it as dirty.
MOVSD(fpr.R(d), XMM0); if (fpr.IsBound(d))
fpr.BindToRegister(d);
// b needs to be in a register because "MOVSD reg, mem" sets the upper bits (64+) to zero and we don't want that.
fpr.BindToRegister(b, true, false);
MOVSD(fpr.R(d), fpr.RX(b));
fpr.UnlockAll(); fpr.UnlockAll();
} }