mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
x86jit: Avoid mem temp for float cmp/loads.
This commit is contained in:
parent
b53143bb33
commit
246eaeb209
2 changed files with 4 additions and 12 deletions
|
@ -113,10 +113,7 @@ void Jit::Comp_FPULS(MIPSOpcode op)
|
|||
if (safe.PrepareRead(src, 4))
|
||||
MOVSS(fpr.RX(ft), src);
|
||||
if (safe.PrepareSlowRead(&Memory::Read_U32))
|
||||
{
|
||||
MOV(32, M(&ssLoadStoreTemp), R(EAX));
|
||||
MOVSS(fpr.RX(ft), M(&ssLoadStoreTemp));
|
||||
}
|
||||
MOVD_xmm(fpr.RX(ft), R(EAX));
|
||||
safe.Finish();
|
||||
|
||||
gpr.UnlockAll();
|
||||
|
@ -155,8 +152,6 @@ static const u64 MEMORY_ALIGNED16(ssOneBits[2]) = {0x0000000100000001ULL, 0x0000
|
|||
static const u64 MEMORY_ALIGNED16(ssSignBits2[2]) = {0x8000000080000000ULL, 0x8000000080000000ULL};
|
||||
static const u64 MEMORY_ALIGNED16(ssNoSignMask[2]) = {0x7FFFFFFF7FFFFFFFULL, 0x7FFFFFFF7FFFFFFFULL};
|
||||
|
||||
static u32 ssCompareTemp;
|
||||
|
||||
void Jit::CompFPComp(int lhs, int rhs, u8 compare, bool allowNaN)
|
||||
{
|
||||
MOVSS(XMM0, fpr.R(lhs));
|
||||
|
@ -168,9 +163,8 @@ void Jit::CompFPComp(int lhs, int rhs, u8 compare, bool allowNaN)
|
|||
{
|
||||
MOVSS(XMM0, fpr.R(lhs));
|
||||
CMPUNORDSS(XMM0, fpr.R(rhs));
|
||||
MOVSS(M(&ssCompareTemp), XMM0);
|
||||
|
||||
MOV(32, R(EAX), M(&ssCompareTemp));
|
||||
MOVD_xmm(R(EAX), XMM0);
|
||||
OR(32, M(¤tMIPS->fpcond), R(EAX));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -226,8 +226,7 @@ void Jit::Comp_SV(MIPSOpcode op) {
|
|||
}
|
||||
if (safe.PrepareSlowRead(&Memory::Read_U32))
|
||||
{
|
||||
MOV(32, M(&ssLoadStoreTemp), R(EAX));
|
||||
MOVSS(fpr.VX(vt), M(&ssLoadStoreTemp));
|
||||
MOVD_xmm(fpr.VX(vt), R(EAX));
|
||||
}
|
||||
safe.Finish();
|
||||
|
||||
|
@ -366,8 +365,7 @@ void Jit::Comp_SVQ(MIPSOpcode op)
|
|||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
safe.NextSlowRead(&Memory::Read_U32, i * 4);
|
||||
MOV(32, M(&ssLoadStoreTemp), R(EAX));
|
||||
MOVSS(fpr.VX(vregs[i]), M(&ssLoadStoreTemp));
|
||||
MOVD_xmm(fpr.VX(vregs[i]), R(EAX));
|
||||
}
|
||||
}
|
||||
safe.Finish();
|
||||
|
|
Loading…
Add table
Reference in a new issue