Core: Update CX86RecompilerOps::COP1_D_SQRT

This commit is contained in:
zilmar 2024-03-21 17:15:10 +10:30
parent 87c732b65d
commit 772a20f07d
1 changed files with 1 additions and 15 deletions

View File

@ -8464,21 +8464,7 @@ void CX86RecompilerOps::COP1_D_SQRT()
{ {
if (FpuExceptionInRecompiler()) if (FpuExceptionInRecompiler())
{ {
CompileInitFpuOperation(CRegInfo::RoundDefault); COP1_D_Opcode(&CX86Ops::Fsqrt);
if (m_RegWorkingSet.RegInStack(m_Opcode.fs, CRegInfo::FPU_Any) ||
m_RegWorkingSet.RegInStack(m_Opcode.fd, CRegInfo::FPU_Any))
{
g_Notify->BreakPoint(__FILE__, __LINE__);
return;
}
asmjit::x86::Gp TempReg = m_RegWorkingSet.FPRValuePointer(m_Opcode.fs, CRegInfo::FPU_Double);
CompileCheckFPUInput(TempReg, FpuOpSize_64bit);
m_RegWorkingSet.PrepareFPTopToBe(m_Opcode.fd, m_Opcode.fs, CRegInfo::FPU_Double);
m_Assembler.fsqrt();
m_Assembler.mov(TempReg, (uint64_t)&m_TempValue64);
m_Assembler.fpuStoreQwordFromX86Reg(m_RegWorkingSet.StackTopPos(), TempReg, false);
CompileCheckFPUResult64(TempReg);
m_RegWorkingSet.SetFPTopAs(m_Opcode.fd);
} }
else else
{ {