From 516df09fceb8cf1429cd1c24fc1cae99e6f17875 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 12 Mar 2015 19:53:28 -0400 Subject: [PATCH] updating FPU locations just if STATUS_FR was changed, not entire reg --- Source/Project64/N64 System/Interpreter/Interpreter Ops 32.cpp | 2 +- Source/Project64/N64 System/Interpreter/Interpreter Ops.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Project64/N64 System/Interpreter/Interpreter Ops 32.cpp b/Source/Project64/N64 System/Interpreter/Interpreter Ops 32.cpp index ece419ef8..a691f7a6c 100644 --- a/Source/Project64/N64 System/Interpreter/Interpreter Ops 32.cpp +++ b/Source/Project64/N64 System/Interpreter/Interpreter Ops 32.cpp @@ -1229,7 +1229,7 @@ void R4300iOp32::COP0_MT (void) { g_SystemTimer->UpdateCompareTimer(); break; case 12: //Status - if ((_CP0[m_Opcode.rd] ^ _GPR[m_Opcode.rt].UW[0]) != 0) { + if ((_CP0[m_Opcode.rd] & STATUS_FR) != (_GPR[m_Opcode.rt].UW[0] & STATUS_FR)) { _CP0[m_Opcode.rd] = _GPR[m_Opcode.rt].UW[0]; g_Reg->FixFpuLocations(); } else { diff --git a/Source/Project64/N64 System/Interpreter/Interpreter Ops.cpp b/Source/Project64/N64 System/Interpreter/Interpreter Ops.cpp index 45087b455..1d4ead132 100644 --- a/Source/Project64/N64 System/Interpreter/Interpreter Ops.cpp +++ b/Source/Project64/N64 System/Interpreter/Interpreter Ops.cpp @@ -1996,7 +1996,7 @@ void R4300iOp::COP0_MT (void) g_SystemTimer->UpdateCompareTimer(); break; case 12: //Status - if ((_CP0[m_Opcode.rd] ^ _GPR[m_Opcode.rt].UW[0]) != 0) { + if ((_CP0[m_Opcode.rd] & STATUS_FR) != (_GPR[m_Opcode.rt].UW[0] & STATUS_FR)) { _CP0[m_Opcode.rd] = _GPR[m_Opcode.rt].UW[0]; g_Reg->FixFpuLocations(); } else {