JitArm64: Drop ps_res.
The accuracy doesn't match ppc, and worse, it doesn't set the error flags if the input is zero. Lets stop to ship broken instructions, so right now, the interpreter is the closest one.
This commit is contained in:
parent
eaa4565e63
commit
90d551e0d1
|
@ -142,7 +142,6 @@ public:
|
|||
void ps_maddXX(UGeckoInstruction inst);
|
||||
void ps_mergeXX(UGeckoInstruction inst);
|
||||
void ps_mulsX(UGeckoInstruction inst);
|
||||
void ps_res(UGeckoInstruction inst);
|
||||
void ps_sel(UGeckoInstruction inst);
|
||||
void ps_sumX(UGeckoInstruction inst);
|
||||
|
||||
|
|
|
@ -152,29 +152,6 @@ void JitArm64::ps_maddXX(UGeckoInstruction inst)
|
|||
fpr.Unlock(V0Q);
|
||||
}
|
||||
|
||||
void JitArm64::ps_res(UGeckoInstruction inst)
|
||||
{
|
||||
INSTRUCTION_START
|
||||
JITDISABLE(bJITPairedOff);
|
||||
FALLBACK_IF(inst.Rc);
|
||||
FALLBACK_IF(SConfig::GetInstance().bFPRF && js.op->wantsFPRF);
|
||||
|
||||
u32 b = inst.FB, d = inst.FD;
|
||||
|
||||
bool singles = fpr.IsSingle(b);
|
||||
RegType type = singles ? REG_REG_SINGLE : REG_REG;
|
||||
u8 size = singles ? 32 : 64;
|
||||
ARM64Reg (*reg_encoder)(ARM64Reg) = singles ? EncodeRegToDouble : EncodeRegToQuad;
|
||||
|
||||
ARM64Reg VB = fpr.R(b, type);
|
||||
ARM64Reg VD = fpr.RW(d, type);
|
||||
|
||||
// FIXME: implement the same LUT as in the interpreter
|
||||
m_float_emit.FRECPE(size, reg_encoder(VD), reg_encoder(VB));
|
||||
|
||||
fpr.FixSinglePrecision(d);
|
||||
}
|
||||
|
||||
void JitArm64::ps_sel(UGeckoInstruction inst)
|
||||
{
|
||||
INSTRUCTION_START
|
||||
|
|
|
@ -145,7 +145,7 @@ constexpr GekkoOPTemplate table4_2[] = {
|
|||
{20, &JitArm64::fp_arith}, // ps_sub
|
||||
{21, &JitArm64::fp_arith}, // ps_add
|
||||
{23, &JitArm64::ps_sel}, // ps_sel
|
||||
{24, &JitArm64::ps_res}, // ps_res
|
||||
{24, &JitArm64::FallBackToInterpreter}, // ps_res
|
||||
{25, &JitArm64::fp_arith}, // ps_mul
|
||||
{26, &JitArm64::FallBackToInterpreter}, // ps_rsqrte
|
||||
{28, &JitArm64::ps_maddXX}, // ps_msub
|
||||
|
|
Loading…
Reference in New Issue