mirror of https://github.com/PCSX2/pcsx2.git
EERec: Small changes so Constant Propagation can be turned off (for testing purposes)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4934 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
6d215a86ca
commit
81d3961352
|
@ -56,9 +56,17 @@ void recJAL( void )
|
||||||
{
|
{
|
||||||
u32 newpc = (_Target_ << 2) + ( pc & 0xf0000000 );
|
u32 newpc = (_Target_ << 2) + ( pc & 0xf0000000 );
|
||||||
_deleteEEreg(31, 0);
|
_deleteEEreg(31, 0);
|
||||||
GPR_SET_CONST(31);
|
if(EE_CONST_PROP)
|
||||||
g_cpuConstRegs[31].UL[0] = pc + 4;
|
{
|
||||||
g_cpuConstRegs[31].UL[1] = 0;
|
GPR_SET_CONST(31);
|
||||||
|
g_cpuConstRegs[31].UL[0] = pc + 4;
|
||||||
|
g_cpuConstRegs[31].UL[1] = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MOV32ItoM((u32)&cpuRegs.GPR.r[31].UL[0], pc + 4);
|
||||||
|
MOV32ItoM((u32)&cpuRegs.GPR.r[31].UL[1], 0);
|
||||||
|
}
|
||||||
|
|
||||||
recompileNextInstruction(1);
|
recompileNextInstruction(1);
|
||||||
SetBranchImm(newpc);
|
SetBranchImm(newpc);
|
||||||
|
@ -78,6 +86,7 @@ void recJR( void )
|
||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
void recJALR( void )
|
void recJALR( void )
|
||||||
{
|
{
|
||||||
|
int newpc = pc + 4;
|
||||||
_allocX86reg(ESI, X86TYPE_PCWRITEBACK, 0, MODE_WRITE);
|
_allocX86reg(ESI, X86TYPE_PCWRITEBACK, 0, MODE_WRITE);
|
||||||
_eeMoveGPRtoR(ESI, _Rs_);
|
_eeMoveGPRtoR(ESI, _Rs_);
|
||||||
// uncomment when there are NO instructions that need to call interpreter
|
// uncomment when there are NO instructions that need to call interpreter
|
||||||
|
@ -100,12 +109,21 @@ void recJALR( void )
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
if ( _Rd_ )
|
if ( _Rd_ )
|
||||||
{
|
{
|
||||||
_deleteEEreg(_Rd_, 0);
|
_deleteEEreg(_Rd_, 0);
|
||||||
GPR_SET_CONST(_Rd_);
|
if(EE_CONST_PROP)
|
||||||
g_cpuConstRegs[_Rd_].UL[0] = pc + 4;
|
{
|
||||||
g_cpuConstRegs[_Rd_].UL[1] = 0;
|
GPR_SET_CONST(_Rd_);
|
||||||
|
g_cpuConstRegs[_Rd_].UL[0] = newpc;
|
||||||
|
g_cpuConstRegs[_Rd_].UL[1] = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MOV32ItoM((u32)&cpuRegs.GPR.r[_Rd_].UL[0], newpc);
|
||||||
|
MOV32ItoM((u32)&cpuRegs.GPR.r[_Rd_].UL[1], 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_clearNeededMMXregs();
|
_clearNeededMMXregs();
|
||||||
|
|
|
@ -71,8 +71,19 @@ void recLUI()
|
||||||
}
|
}
|
||||||
|
|
||||||
_deleteEEreg(_Rt_, 0);
|
_deleteEEreg(_Rt_, 0);
|
||||||
GPR_SET_CONST(_Rt_);
|
|
||||||
g_cpuConstRegs[_Rt_].UD[0] = (s32)(cpuRegs.code << 16);
|
if(EE_CONST_PROP)
|
||||||
|
{
|
||||||
|
GPR_SET_CONST(_Rt_);
|
||||||
|
g_cpuConstRegs[_Rt_].UD[0] = (s32)(cpuRegs.code << 16);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MOV32ItoR(EAX, (s32)(cpuRegs.code << 16));
|
||||||
|
CDQ();
|
||||||
|
MOV32RtoM((u32)&cpuRegs.GPR.r[_Rt_].UL[0], EAX);
|
||||||
|
MOV32RtoM((u32)&cpuRegs.GPR.r[_Rt_].UL[1], EDX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
|
|
Loading…
Reference in New Issue