mirror of https://github.com/PCSX2/pcsx2.git
Disabling the not working backward propagation system in the EErec.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2456 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
3780b67ea8
commit
4673574ca1
|
@ -168,12 +168,15 @@ __forceinline void BSCPropagate::rpropSPECIAL()
|
|||
case 2: // SRL
|
||||
case 3: // SRA
|
||||
rpropSetWrite(_Rd_, EEINST_LIVE1);
|
||||
rpropSetRead(_Rt_, 0);
|
||||
break;
|
||||
|
||||
case 4: // sllv
|
||||
case 6: // srlv
|
||||
case 7: // srav
|
||||
rpropSetWrite(_Rd_, EEINST_LIVE1);
|
||||
rpropSetRead(_Rs_, 0);
|
||||
rpropSetRead(_Rt_, 0);
|
||||
break;
|
||||
|
||||
case 8: // JR
|
||||
|
@ -222,34 +225,10 @@ __forceinline void BSCPropagate::rpropSPECIAL()
|
|||
case 22: // dsrlv
|
||||
case 23: // dsrav
|
||||
rpropSetWrite(_Rd_, EEINST_LIVE1);
|
||||
rpropSetRead(_Rs_, 0);
|
||||
rpropSetRead(_Rt_, EEINST_LIVE1);
|
||||
break;
|
||||
|
||||
//case 24: // mult
|
||||
// // can do unsigned mult only if HI isn't used
|
||||
|
||||
// //using this allocation for temp causes the emu to crash
|
||||
// //temp = 0;
|
||||
// temp = 0;
|
||||
// rpropSetWrite(XMMGPR_LO, EEINST_LIVE1);
|
||||
// rpropSetWrite(XMMGPR_HI, EEINST_LIVE1);
|
||||
// rpropSetWrite(_Rd_, EEINST_LIVE1);
|
||||
//
|
||||
// // fixme - temp is always 0, so I doubt the next three lines are right. (arcum42)
|
||||
|
||||
// // Yep, its wrong. Using always 0 causes the wrong damage calculations in Soul Nomad.
|
||||
// rpropSetRead(_Rs_, temp);
|
||||
// rpropSetRead(_Rt_, temp);
|
||||
// pinst.info |= temp;
|
||||
// break;
|
||||
|
||||
//case 25: // multu
|
||||
// rpropSetWrite(XMMGPR_LO, EEINST_LIVE1);
|
||||
// rpropSetWrite(XMMGPR_HI, EEINST_LIVE1);
|
||||
// rpropSetWrite(_Rd_, EEINST_LIVE1);
|
||||
// break;
|
||||
|
||||
|
||||
case 24: // mult
|
||||
case 25: // multu
|
||||
rpropSetWrite(XMMGPR_LO, EEINST_LIVE1);
|
||||
|
@ -335,6 +314,7 @@ __forceinline void BSCPropagate::rpropSPECIAL()
|
|||
|
||||
case 60: // dsll32
|
||||
rpropSetWrite(_Rd_, EEINST_LIVE1);
|
||||
rpropSetRead(_Rt_, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -610,12 +590,16 @@ __forceinline void BSCPropagate::rpropMMI()
|
|||
rpropSetWrite0<0>(XMMGPR_LO, EEINST_LIVE2);
|
||||
rpropSetWrite0<0>(XMMGPR_HI, EEINST_LIVE2);
|
||||
rpropSetWrite(_Rd_, EEINST_LIVE1);
|
||||
rpropSetRead(_Rs_, 0);
|
||||
rpropSetRead(_Rt_, 0);
|
||||
break;
|
||||
}
|
||||
case 25: // multu1
|
||||
rpropSetWrite0<0>(XMMGPR_LO, EEINST_LIVE2);
|
||||
rpropSetWrite0<0>(XMMGPR_HI, EEINST_LIVE2);
|
||||
rpropSetWrite(_Rd_, EEINST_LIVE1);
|
||||
rpropSetRead(_Rs_, 0);
|
||||
rpropSetRead(_Rt_, 0);
|
||||
break;
|
||||
|
||||
case 26: // div1
|
||||
|
@ -905,6 +889,7 @@ void BSCPropagate::rprop()
|
|||
|
||||
case 12: // andi
|
||||
rpropSetWrite(_Rt_, EEINST_LIVE1);
|
||||
rpropSetRead(_Rs_, 0);
|
||||
break;
|
||||
case 13: // ori
|
||||
rpropSetWrite(_Rt_, EEINST_LIVE1);
|
||||
|
|
|
@ -1485,9 +1485,11 @@ StartRecomp:
|
|||
for(i = s_nEndBlock; i > startpc; i -= 4 ) {
|
||||
cpuRegs.code = *(int *)PSM(i-4);
|
||||
pcur[-1] = pcur[0];
|
||||
|
||||
BSCPropagate bsc( pcur[-1], pcur[0] );
|
||||
bsc.rprop();
|
||||
|
||||
// Backward propagation entry point. Since it doesn't work right it's disabled for now
|
||||
//BSCPropagate bsc( pcur[-1], pcur[0] );
|
||||
//bsc.rprop();
|
||||
|
||||
pcur--;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue