mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
Jit64: drop unused argument from SetFPRFIfNeeded
This commit is contained in:
@ -133,7 +133,7 @@ public:
|
|||||||
// Generates a branch that will check if a given bit of a CR register part
|
// Generates a branch that will check if a given bit of a CR register part
|
||||||
// is set or not.
|
// is set or not.
|
||||||
Gen::FixupBranch JumpIfCRFieldBit(int field, int bit, bool jump_if_set = true);
|
Gen::FixupBranch JumpIfCRFieldBit(int field, int bit, bool jump_if_set = true);
|
||||||
void SetFPRFIfNeeded(UGeckoInstruction inst, Gen::X64Reg xmm);
|
void SetFPRFIfNeeded(Gen::X64Reg xmm);
|
||||||
|
|
||||||
void MultiplyImmediate(u32 imm, int a, int d, bool overflow);
|
void MultiplyImmediate(u32 imm, int a, int d, bool overflow);
|
||||||
|
|
||||||
|
@ -49,14 +49,14 @@ void Jit64::fp_tri_op(int d, int a, int b, bool reversible, bool single, void (X
|
|||||||
MOVDDUP(fpr.RX(d), fpr.R(d));
|
MOVDDUP(fpr.RX(d), fpr.R(d));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
// We can avoid calculating FPRF if it's not needed; every float operation resets it, so
|
// We can avoid calculating FPRF if it's not needed; every float operation resets it, so
|
||||||
// if it's going to be clobbered in a future instruction before being read, we can just
|
// if it's going to be clobbered in a future instruction before being read, we can just
|
||||||
// not calculate it.
|
// not calculate it.
|
||||||
void Jit64::SetFPRFIfNeeded(UGeckoInstruction inst, X64Reg xmm)
|
void Jit64::SetFPRFIfNeeded(X64Reg xmm)
|
||||||
{
|
{
|
||||||
// As far as we know, the games that use this flag only need FPRF for fmul and fmadd, but
|
// As far as we know, the games that use this flag only need FPRF for fmul and fmadd, but
|
||||||
// FPRF is fast enough in JIT that we might as well just enable it for every float instruction
|
// FPRF is fast enough in JIT that we might as well just enable it for every float instruction
|
||||||
@ -230,7 +230,7 @@ void Jit64::fmaddXX(UGeckoInstruction inst)
|
|||||||
{
|
{
|
||||||
MOVSD(fpr.RX(d), R(XMM0));
|
MOVSD(fpr.RX(d), R(XMM0));
|
||||||
}
|
}
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -497,7 +497,7 @@ void Jit64::frspx(UGeckoInstruction inst)
|
|||||||
MOVAPD(fpr.RX(d), fpr.R(b));
|
MOVAPD(fpr.RX(d), fpr.R(b));
|
||||||
ForceSinglePrecisionS(fpr.RX(d), fpr.RX(d));
|
ForceSinglePrecisionS(fpr.RX(d), fpr.RX(d));
|
||||||
MOVDDUP(fpr.RX(d), fpr.R(d));
|
MOVDDUP(fpr.RX(d), fpr.R(d));
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -515,7 +515,7 @@ void Jit64::frsqrtex(UGeckoInstruction inst)
|
|||||||
MOVAPD(XMM0, fpr.R(b));
|
MOVAPD(XMM0, fpr.R(b));
|
||||||
CALL((void *)asm_routines.frsqrte);
|
CALL((void *)asm_routines.frsqrte);
|
||||||
MOVSD(fpr.R(d), XMM0);
|
MOVSD(fpr.R(d), XMM0);
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
gpr.UnlockAllX();
|
gpr.UnlockAllX();
|
||||||
}
|
}
|
||||||
@ -534,7 +534,7 @@ void Jit64::fresx(UGeckoInstruction inst)
|
|||||||
MOVAPD(XMM0, fpr.R(b));
|
MOVAPD(XMM0, fpr.R(b));
|
||||||
CALL((void *)asm_routines.fres);
|
CALL((void *)asm_routines.fres);
|
||||||
MOVSD(fpr.R(d), XMM0);
|
MOVSD(fpr.R(d), XMM0);
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
gpr.UnlockAllX();
|
gpr.UnlockAllX();
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,7 @@ void Jit64::tri_op(int d, int a, int b, bool reversible, void (XEmitter::*avxOp)
|
|||||||
avx_op(avxOp, sseOp, fpr.RX(d), fpr.R(a), fpr.R(b), true, reversible);
|
avx_op(avxOp, sseOp, fpr.RX(d), fpr.R(a), fpr.R(b), true, reversible);
|
||||||
}
|
}
|
||||||
ForceSinglePrecisionP(fpr.RX(d), fpr.RX(d));
|
ForceSinglePrecisionP(fpr.RX(d), fpr.RX(d));
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,7 +174,7 @@ void Jit64::ps_sum(UGeckoInstruction inst)
|
|||||||
}
|
}
|
||||||
fpr.BindToRegister(d, false);
|
fpr.BindToRegister(d, false);
|
||||||
ForceSinglePrecisionP(fpr.RX(d), XMM0);
|
ForceSinglePrecisionP(fpr.RX(d), XMM0);
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ void Jit64::ps_muls(UGeckoInstruction inst)
|
|||||||
MULPD(XMM0, fpr.R(a));
|
MULPD(XMM0, fpr.R(a));
|
||||||
fpr.BindToRegister(d, false);
|
fpr.BindToRegister(d, false);
|
||||||
ForceSinglePrecisionP(fpr.RX(d), XMM0);
|
ForceSinglePrecisionP(fpr.RX(d), XMM0);
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,7 +265,7 @@ void Jit64::ps_rsqrte(UGeckoInstruction inst)
|
|||||||
MOVLHPS(fpr.RX(d), XMM0);
|
MOVLHPS(fpr.RX(d), XMM0);
|
||||||
|
|
||||||
ForceSinglePrecisionP(fpr.RX(d), fpr.RX(d));
|
ForceSinglePrecisionP(fpr.RX(d), fpr.RX(d));
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
gpr.UnlockAllX();
|
gpr.UnlockAllX();
|
||||||
}
|
}
|
||||||
@ -292,7 +292,7 @@ void Jit64::ps_res(UGeckoInstruction inst)
|
|||||||
MOVLHPS(fpr.RX(d), XMM0);
|
MOVLHPS(fpr.RX(d), XMM0);
|
||||||
|
|
||||||
ForceSinglePrecisionP(fpr.RX(d), fpr.RX(d));
|
ForceSinglePrecisionP(fpr.RX(d), fpr.RX(d));
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
gpr.UnlockAllX();
|
gpr.UnlockAllX();
|
||||||
}
|
}
|
||||||
@ -387,7 +387,7 @@ void Jit64::ps_maddXX(UGeckoInstruction inst)
|
|||||||
|
|
||||||
fpr.BindToRegister(d, false);
|
fpr.BindToRegister(d, false);
|
||||||
ForceSinglePrecisionP(fpr.RX(d), XMM0);
|
ForceSinglePrecisionP(fpr.RX(d), XMM0);
|
||||||
SetFPRFIfNeeded(inst, fpr.RX(d));
|
SetFPRFIfNeeded(fpr.RX(d));
|
||||||
fpr.UnlockAll();
|
fpr.UnlockAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user