mirror of https://github.com/PCSX2/pcsx2.git
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:
parent
122baa17a2
commit
50caca4002
|
@ -108,6 +108,15 @@ static const __aligned16 u32 s_pos[4] = { 0x7fffffff, 0xffffffff, 0xffffffff, 0x
|
||||||
// *FPU Opcodes!*
|
// *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
|
// CFC1 / CTC1
|
||||||
|
@ -260,6 +269,7 @@ void recMTC1()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -500,6 +500,9 @@ void recSDR()
|
||||||
|
|
||||||
void recLWC1()
|
void recLWC1()
|
||||||
{
|
{
|
||||||
|
#ifndef FPU_RECOMPILE
|
||||||
|
recCall(::R5900::Interpreter::OpcodeImpl::LWC1);
|
||||||
|
#else
|
||||||
_deleteFPtoXMMreg(_Rt_, 2);
|
_deleteFPtoXMMreg(_Rt_, 2);
|
||||||
|
|
||||||
if (GPR_IS_CONST1(_Rs_))
|
if (GPR_IS_CONST1(_Rs_))
|
||||||
|
@ -521,12 +524,16 @@ void recLWC1()
|
||||||
xMOV(ptr32[&fpuRegs.fpr[_Rt_].UL], eax);
|
xMOV(ptr32[&fpuRegs.fpr[_Rt_].UL], eax);
|
||||||
|
|
||||||
EE::Profiler.EmitOp(eeOpcode::LWC1);
|
EE::Profiler.EmitOp(eeOpcode::LWC1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////
|
||||||
|
|
||||||
void recSWC1()
|
void recSWC1()
|
||||||
{
|
{
|
||||||
|
#ifndef FPU_RECOMPILE
|
||||||
|
recCall(::R5900::Interpreter::OpcodeImpl::SWC1);
|
||||||
|
#else
|
||||||
_deleteFPtoXMMreg(_Rt_, 1);
|
_deleteFPtoXMMreg(_Rt_, 1);
|
||||||
|
|
||||||
xMOV(edx, ptr32[&fpuRegs.fpr[_Rt_].UL] );
|
xMOV(edx, ptr32[&fpuRegs.fpr[_Rt_].UL] );
|
||||||
|
@ -548,6 +555,7 @@ void recSWC1()
|
||||||
}
|
}
|
||||||
|
|
||||||
EE::Profiler.EmitOp(eeOpcode::SWC1);
|
EE::Profiler.EmitOp(eeOpcode::SWC1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
|
|
Loading…
Reference in New Issue