From ba7315922fd54db372b7f7e058ef0bae3fcd0d7b Mon Sep 17 00:00:00 2001 From: zilmar Date: Wed, 23 Nov 2016 09:05:12 +1100 Subject: [PATCH] [Project64] Implement CArmRecompilerOps::LUI --- .../N64System/Recompiler/Arm/ArmRecompilerOps.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Source/Project64-core/N64System/Recompiler/Arm/ArmRecompilerOps.cpp b/Source/Project64-core/N64System/Recompiler/Arm/ArmRecompilerOps.cpp index 6232f685d..810543bfa 100644 --- a/Source/Project64-core/N64System/Recompiler/Arm/ArmRecompilerOps.cpp +++ b/Source/Project64-core/N64System/Recompiler/Arm/ArmRecompilerOps.cpp @@ -1953,15 +1953,19 @@ void CArmRecompilerOps::XORI() void CArmRecompilerOps::LUI() { - UnMap_GPR(m_Opcode.rt, true); - if (g_Settings->LoadBool(Game_32Bit)) + if (m_Opcode.rt == 0) { - CompileInterpterCall((void *)R4300iOp32::LUI, "R4300iOp32::LUI"); + return; } - else + + if (g_System->bFastSP() && m_Opcode.rt == 29) { - CompileInterpterCall((void *)R4300iOp::LUI, "R4300iOp::LUI"); + g_Notify->BreakPoint(__FILE__, __LINE__); } + + UnMap_GPR(m_Opcode.rt, false); + m_RegWorkingSet.SetMipsRegLo(m_Opcode.rt, ((int16_t)m_Opcode.offset << 16)); + m_RegWorkingSet.SetMipsRegState(m_Opcode.rt, CRegInfo::STATE_CONST_32_SIGN); } void CArmRecompilerOps::DADDIU()