[AArch64] Implement frspx
Improves performance in povray bench by 2%
This commit is contained in:
parent
c325c310d6
commit
ce32b76be3
|
@ -145,6 +145,7 @@ public:
|
||||||
void fsubsx(UGeckoInstruction inst);
|
void fsubsx(UGeckoInstruction inst);
|
||||||
void fsubx(UGeckoInstruction inst);
|
void fsubx(UGeckoInstruction inst);
|
||||||
void fcmpx(UGeckoInstruction inst);
|
void fcmpx(UGeckoInstruction inst);
|
||||||
|
void frspx(UGeckoInstruction inst);
|
||||||
|
|
||||||
// Paired
|
// Paired
|
||||||
void ps_abs(UGeckoInstruction inst);
|
void ps_abs(UGeckoInstruction inst);
|
||||||
|
|
|
@ -458,6 +458,22 @@ void JitArm64::fsubx(UGeckoInstruction inst)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void JitArm64::frspx(UGeckoInstruction inst)
|
||||||
|
{
|
||||||
|
INSTRUCTION_START
|
||||||
|
JITDISABLE(bJITFloatingPointOff);
|
||||||
|
|
||||||
|
u32 b = inst.FB, d = inst.FD;
|
||||||
|
fpr.BindToRegister(d, d == b, false);
|
||||||
|
|
||||||
|
ARM64Reg VB = fpr.R(b);
|
||||||
|
ARM64Reg VD = fpr.R(d, false);
|
||||||
|
|
||||||
|
m_float_emit.FCVTN(32, EncodeRegToDouble(VD), EncodeRegToDouble(VB));
|
||||||
|
m_float_emit.FCVTL(64, EncodeRegToDouble(VD), EncodeRegToDouble(VD));
|
||||||
|
m_float_emit.INS(64, VD, 1, VD, 0);
|
||||||
|
}
|
||||||
|
|
||||||
void JitArm64::fcmpx(UGeckoInstruction inst)
|
void JitArm64::fcmpx(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
|
|
|
@ -334,7 +334,7 @@ static GekkoOPTemplate table63[] =
|
||||||
{72, &JitArm64::fmrx}, // fmrx
|
{72, &JitArm64::fmrx}, // fmrx
|
||||||
{136, &JitArm64::fnabsx}, // fnabsx
|
{136, &JitArm64::fnabsx}, // fnabsx
|
||||||
{40, &JitArm64::fnegx}, // fnegx
|
{40, &JitArm64::fnegx}, // fnegx
|
||||||
{12, &JitArm64::FallBackToInterpreter}, // frspx
|
{12, &JitArm64::frspx}, // frspx
|
||||||
|
|
||||||
{64, &JitArm64::FallBackToInterpreter}, // mcrfs
|
{64, &JitArm64::FallBackToInterpreter}, // mcrfs
|
||||||
{583, &JitArm64::FallBackToInterpreter}, // mffsx
|
{583, &JitArm64::FallBackToInterpreter}, // mffsx
|
||||||
|
|
Loading…
Reference in New Issue