[AArch64] Don't flush VFP register to stack when not needed.
This commit is contained in:
parent
c8c062fa96
commit
235f6c2445
|
@ -176,11 +176,10 @@ void JitArm64::lfXX(UGeckoInstruction inst)
|
||||||
|
|
||||||
BitSet32 regs_in_use = gpr.GetCallerSavedUsed();
|
BitSet32 regs_in_use = gpr.GetCallerSavedUsed();
|
||||||
BitSet32 fprs_in_use = fpr.GetCallerSavedUsed();
|
BitSet32 fprs_in_use = fpr.GetCallerSavedUsed();
|
||||||
BitSet32 fpr_ignore_mask(0);
|
|
||||||
regs_in_use[W0] = 0;
|
regs_in_use[W0] = 0;
|
||||||
regs_in_use[W30] = 0;
|
regs_in_use[W30] = 0;
|
||||||
fprs_in_use[0] = 0; // Q0
|
fprs_in_use[0] = 0; // Q0
|
||||||
fpr_ignore_mask[VD - Q0] = 1;
|
fprs_in_use[VD - Q0] = 0;
|
||||||
|
|
||||||
if (is_immediate && Memory::IsRAMAddress(imm_addr))
|
if (is_immediate && Memory::IsRAMAddress(imm_addr))
|
||||||
{
|
{
|
||||||
|
@ -196,7 +195,7 @@ void JitArm64::lfXX(UGeckoInstruction inst)
|
||||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bFastmem,
|
SConfig::GetInstance().m_LocalCoreStartupParameter.bFastmem,
|
||||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bFastmem,
|
SConfig::GetInstance().m_LocalCoreStartupParameter.bFastmem,
|
||||||
VD, XA);
|
VD, XA);
|
||||||
m_float_emit.ABI_PopRegisters(fprs_in_use, fpr_ignore_mask);
|
m_float_emit.ABI_PopRegisters(fprs_in_use);
|
||||||
ABI_PopRegisters(regs_in_use);
|
ABI_PopRegisters(regs_in_use);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue