mirror of https://github.com/PCSX2/pcsx2.git
Pseudonym found missing register allocation flushes in our recompiler loads / stores.
This is fixed now. (Devil May Cry 1 fixed) git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3622 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
8160056911
commit
aa8c007af3
|
@ -115,6 +115,7 @@ void recLoad64( u32 bits, bool sign )
|
||||||
|
|
||||||
if( GPR_IS_CONST1( _Rs_ ) )
|
if( GPR_IS_CONST1( _Rs_ ) )
|
||||||
{
|
{
|
||||||
|
iFlushCall(FLUSH_EXCEPTION);
|
||||||
_eeOnLoadWrite(_Rt_);
|
_eeOnLoadWrite(_Rt_);
|
||||||
_deleteEEreg(_Rt_, 0);
|
_deleteEEreg(_Rt_, 0);
|
||||||
u32 srcadr = g_cpuConstRegs[_Rs_].UL[0] + _Imm_;
|
u32 srcadr = g_cpuConstRegs[_Rs_].UL[0] + _Imm_;
|
||||||
|
@ -151,6 +152,7 @@ void recLoad32( u32 bits, bool sign )
|
||||||
|
|
||||||
if( GPR_IS_CONST1( _Rs_ ) )
|
if( GPR_IS_CONST1( _Rs_ ) )
|
||||||
{
|
{
|
||||||
|
iFlushCall(FLUSH_EXCEPTION);
|
||||||
_eeOnLoadWrite(_Rt_);
|
_eeOnLoadWrite(_Rt_);
|
||||||
_deleteEEreg(_Rt_, 0);
|
_deleteEEreg(_Rt_, 0);
|
||||||
|
|
||||||
|
@ -215,6 +217,7 @@ void recStore(u32 sz, bool edxAlreadyAssigned=false)
|
||||||
|
|
||||||
if( GPR_IS_CONST1( _Rs_ ) )
|
if( GPR_IS_CONST1( _Rs_ ) )
|
||||||
{
|
{
|
||||||
|
iFlushCall(FLUSH_EXCEPTION);
|
||||||
u32 dstadr = g_cpuConstRegs[_Rs_].UL[0] + _Imm_;
|
u32 dstadr = g_cpuConstRegs[_Rs_].UL[0] + _Imm_;
|
||||||
if( sz == 128 ) dstadr &= ~0x0f;
|
if( sz == 128 ) dstadr &= ~0x0f;
|
||||||
vtlb_DynGenWrite_Const( sz, dstadr );
|
vtlb_DynGenWrite_Const( sz, dstadr );
|
||||||
|
@ -291,6 +294,7 @@ void recSWL( void )
|
||||||
// NOTE: Code incomplete. I'll fix/finish it soon. --air
|
// NOTE: Code incomplete. I'll fix/finish it soon. --air
|
||||||
if( 0 ) //GPR_IS_CONST1( _Rs_ ) )
|
if( 0 ) //GPR_IS_CONST1( _Rs_ ) )
|
||||||
{
|
{
|
||||||
|
iFlushCall(FLUSH_EXCEPTION);
|
||||||
_eeOnLoadWrite(_Rt_);
|
_eeOnLoadWrite(_Rt_);
|
||||||
//_deleteEEreg(_Rt_, 0);
|
//_deleteEEreg(_Rt_, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue