From bfa378856204a45d74acb12dab56be9224419817 Mon Sep 17 00:00:00 2001 From: zilmar Date: Thu, 26 Dec 2024 14:29:52 +1030 Subject: [PATCH] Core: CX86RecompilerOps::COP1_D_Opcode fix return type of floating point register --- .../Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp b/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp index b0914092c..d045494a2 100644 --- a/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp +++ b/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp @@ -10403,6 +10403,7 @@ void CX86RecompilerOps::COP1_D_Opcode(void (CX86Ops::*Instruction)(void)) CompileCheckFPUInput(TempReg, FpuOpSize_64bit); m_RegWorkingSet.SetX86Protected(GetIndexFromX86Reg(TempReg), false); m_RegWorkingSet.PrepareFPTopToBe(m_Opcode.fd, m_Opcode.fs, CRegInfo::FPU_Double); + m_RegWorkingSet.FpuState(m_RegWorkingSet.StackTopPos()) = CRegInfo::FPU_UnsignedDoubleWord; (m_Assembler.*Instruction)(); m_Assembler.mov(TempReg, (uint64_t)&m_TempValue64); m_Assembler.fpuStoreQwordFromX86Reg(m_RegWorkingSet.StackTopPos(), TempReg, false);