From aa8c007af31fe3b3f9da38cca4b7638dd1e4c073 Mon Sep 17 00:00:00 2001 From: ramapcsx2 Date: Sun, 8 Aug 2010 18:05:16 +0000 Subject: [PATCH] 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 --- pcsx2/x86/ix86-32/iR5900LoadStore.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pcsx2/x86/ix86-32/iR5900LoadStore.cpp b/pcsx2/x86/ix86-32/iR5900LoadStore.cpp index c63e2f05e8..3339223a09 100644 --- a/pcsx2/x86/ix86-32/iR5900LoadStore.cpp +++ b/pcsx2/x86/ix86-32/iR5900LoadStore.cpp @@ -115,6 +115,7 @@ void recLoad64( u32 bits, bool sign ) if( GPR_IS_CONST1( _Rs_ ) ) { + iFlushCall(FLUSH_EXCEPTION); _eeOnLoadWrite(_Rt_); _deleteEEreg(_Rt_, 0); u32 srcadr = g_cpuConstRegs[_Rs_].UL[0] + _Imm_; @@ -151,6 +152,7 @@ void recLoad32( u32 bits, bool sign ) if( GPR_IS_CONST1( _Rs_ ) ) { + iFlushCall(FLUSH_EXCEPTION); _eeOnLoadWrite(_Rt_); _deleteEEreg(_Rt_, 0); @@ -215,6 +217,7 @@ void recStore(u32 sz, bool edxAlreadyAssigned=false) if( GPR_IS_CONST1( _Rs_ ) ) { + iFlushCall(FLUSH_EXCEPTION); u32 dstadr = g_cpuConstRegs[_Rs_].UL[0] + _Imm_; if( sz == 128 ) dstadr &= ~0x0f; vtlb_DynGenWrite_Const( sz, dstadr ); @@ -291,6 +294,7 @@ void recSWL( void ) // NOTE: Code incomplete. I'll fix/finish it soon. --air if( 0 ) //GPR_IS_CONST1( _Rs_ ) ) { + iFlushCall(FLUSH_EXCEPTION); _eeOnLoadWrite(_Rt_); //_deleteEEreg(_Rt_, 0);