commit
5e3a79823c
|
@ -3236,6 +3236,10 @@ void ARM64FloatEmitter::FNEG(u8 size, ARM64Reg Rd, ARM64Reg Rn)
|
|||
{
|
||||
Emit2RegMisc(IsQuad(Rd), 1, 2 | (size >> 6), 0xF, Rd, Rn);
|
||||
}
|
||||
void ARM64FloatEmitter::FRECPE(u8 size, ARM64Reg Rd, ARM64Reg Rn)
|
||||
{
|
||||
Emit2RegMisc(IsQuad(Rd), 0, 2 | (size >> 6), 0x1D, Rd, Rn);
|
||||
}
|
||||
void ARM64FloatEmitter::FRSQRTE(u8 size, ARM64Reg Rd, ARM64Reg Rn)
|
||||
{
|
||||
Emit2RegMisc(IsQuad(Rd), 1, 2 | (size >> 6), 0x1D, Rd, Rn);
|
||||
|
|
|
@ -992,6 +992,7 @@ public:
|
|||
void FDIV(u8 size, ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm);
|
||||
void FMUL(u8 size, ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm);
|
||||
void FNEG(u8 size, ARM64Reg Rd, ARM64Reg Rn);
|
||||
void FRECPE(u8 size, ARM64Reg Rd, ARM64Reg Rn);
|
||||
void FRSQRTE(u8 size, ARM64Reg Rd, ARM64Reg Rn);
|
||||
void FSUB(u8 size, ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm);
|
||||
void NOT(ARM64Reg Rd, ARM64Reg Rn);
|
||||
|
|
|
@ -169,7 +169,8 @@ void JitArm64::ps_res(UGeckoInstruction inst)
|
|||
ARM64Reg VB = fpr.R(b, type);
|
||||
ARM64Reg VD = fpr.RW(d, type);
|
||||
|
||||
m_float_emit.FRSQRTE(size, reg_encoder(VD), reg_encoder(VB));
|
||||
// FIXME: implement the same LUT as in the interpreter
|
||||
m_float_emit.FRECPE(size, reg_encoder(VD), reg_encoder(VB));
|
||||
|
||||
fpr.FixSinglePrecision(d);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue