Core: Have CX86RecompilerOps::CompileCheckFPUResult32 write to the high word

This commit is contained in:
zilmar 2024-03-28 20:02:24 +10:30
parent 560c49ba2d
commit 8bb2445263
1 changed files with 2 additions and 1 deletions

View File

@ -9134,8 +9134,9 @@ void CX86RecompilerOps::CompileCheckFPUResult32(int32_t DestReg)
} }
m_Assembler.MoveVariableToX86reg(TempReg, &m_TempValue32, "TempValue32"); m_Assembler.MoveVariableToX86reg(TempReg, &m_TempValue32, "TempValue32");
asmjit::x86::Gp TempRegFPR_S = ExitRegSet.Map_TempReg(x86Reg_Unknown, -1, false, false); asmjit::x86::Gp TempRegFPR_S = ExitRegSet.Map_TempReg(x86Reg_Unknown, -1, false, false);
m_Assembler.MoveVariableToX86reg(TempRegFPR_S, &m_Reg.m_FPR_S[DestReg], stdstr_f("m_FPR_S[%d]", DestReg).c_str()); m_Assembler.MoveVariableToX86reg(TempRegFPR_S, &m_Reg.m_FPR_UDW[DestReg], stdstr_f("m_FPR_UDW[%d]", DestReg).c_str());
m_Assembler.mov(asmjit::x86::dword_ptr(TempRegFPR_S), TempReg); m_Assembler.mov(asmjit::x86::dword_ptr(TempRegFPR_S), TempReg);
m_Assembler.and_(asmjit::x86::dword_ptr(TempRegFPR_S, 4), 0);
ExitRegSet.SetBlockCycleCount(ExitRegSet.GetBlockCycleCount() + g_System->CountPerOp()); ExitRegSet.SetBlockCycleCount(ExitRegSet.GetBlockCycleCount() + g_System->CountPerOp());
CompileExit(m_CompilePC + 4, m_CompilePC + 4, ExitRegSet, ExitReason_Normal, false, &CX86Ops::JmpLabel); CompileExit(m_CompilePC + 4, m_CompilePC + 4, ExitRegSet, ExitReason_Normal, false, &CX86Ops::JmpLabel);