Core: Get COP1_D_CMP to map eax before CompileInitFpuOperation

This commit is contained in:
zilmar 2024-04-18 16:58:18 +09:30
parent 3203322d8b
commit a9875b7d61
1 changed files with 1 additions and 1 deletions

View File

@ -8624,6 +8624,7 @@ void CX86RecompilerOps::COP1_D_CMP()
{
if (FpuExceptionInRecompiler())
{
m_RegWorkingSet.Map_TempReg(asmjit::x86::eax, 0, false, false);
CompileInitFpuOperation(CRegBase::RoundUnknown);
if (m_RegWorkingSet.RegInStack(m_Opcode.fs, CRegInfo::FPU_Any) || m_RegWorkingSet.RegInStack(m_Opcode.fd, CRegInfo::FPU_Any))
{
@ -8638,7 +8639,6 @@ void CX86RecompilerOps::COP1_D_CMP()
{
m_Assembler.AndConstToVariable(&m_Reg.m_FPCR[31], "_FPCR[31]", (uint32_t)~FPCSR_C);
}
m_RegWorkingSet.Map_TempReg(asmjit::x86::eax, 0, false, false);
asmjit::x86::Gp StatusReg = m_RegWorkingSet.Map_FPStatusReg();
asmjit::x86::Gp TempRegValue = m_RegWorkingSet.Map_TempReg(x86Reg_Unknown, -1, false, true);
asmjit::x86::Gp FsPtr = m_RegWorkingSet.FPRValuePointer(m_Opcode.fs, CRegInfo::FPU_Double);