EE: replace EE/FPU mov opcode when FPU_RECOMPILE isn't enabled

It will be easier for testing if we change the format of the FPU register
This commit is contained in:
Gregory Hainaut 2016-02-11 18:51:37 +01:00
parent 122baa17a2
commit 50caca4002
2 changed files with 19 additions and 1 deletions

View File

@ -108,6 +108,15 @@ static const __aligned16 u32 s_pos[4] = { 0x7fffffff, 0xffffffff, 0xffffffff, 0x
// *FPU Opcodes!*
//------------------------------------------------------------------
// Those opcode are marked as special ! But I don't understand why we can't run them in the interpreter
#ifndef FPU_RECOMPILE
REC_FPUFUNC(CFC1);
REC_FPUFUNC(CTC1);
REC_FPUFUNC(MFC1);
REC_FPUFUNC(MTC1);
#else
//------------------------------------------------------------------
// CFC1 / CTC1
@ -260,6 +269,7 @@ void recMTC1()
}
}
}
#endif
//------------------------------------------------------------------

View File

@ -500,6 +500,9 @@ void recSDR()
void recLWC1()
{
#ifndef FPU_RECOMPILE
recCall(::R5900::Interpreter::OpcodeImpl::LWC1);
#else
_deleteFPtoXMMreg(_Rt_, 2);
if (GPR_IS_CONST1(_Rs_))
@ -521,12 +524,16 @@ void recLWC1()
xMOV(ptr32[&fpuRegs.fpr[_Rt_].UL], eax);
EE::Profiler.EmitOp(eeOpcode::LWC1);
#endif
}
////////////////////////////////////////////////////
//////////////////////////////////////////////////////
void recSWC1()
{
#ifndef FPU_RECOMPILE
recCall(::R5900::Interpreter::OpcodeImpl::SWC1);
#else
_deleteFPtoXMMreg(_Rt_, 1);
xMOV(edx, ptr32[&fpuRegs.fpr[_Rt_].UL] );
@ -548,6 +555,7 @@ void recSWC1()
}
EE::Profiler.EmitOp(eeOpcode::SWC1);
#endif
}
////////////////////////////////////////////////////