From c7ab67d8ce4424aafa9e2c7c3df599bc32781fb9 Mon Sep 17 00:00:00 2001 From: ramapcsx2 Date: Wed, 24 Sep 2008 18:26:43 +0000 Subject: [PATCH] better x64 fix git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@144 a6443dda-0b58-4228-96e9-037be469359c --- pcsx2/x86/iR3000A.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pcsx2/x86/iR3000A.cpp b/pcsx2/x86/iR3000A.cpp index 4a8e4c59f7..ebf09355e6 100644 --- a/pcsx2/x86/iR3000A.cpp +++ b/pcsx2/x86/iR3000A.cpp @@ -1237,6 +1237,10 @@ void psxRecRecompile(u32 startpc) u32 willbranch3 = 0; u32* ptr; +#ifdef __x86_64__ + FreezeXMMRegs(1); //check why this is needed on x64 builds (rama) +#endif + #ifdef _DEBUG //psxdump |= 4; if( psxdump & 4 ) @@ -1501,9 +1505,7 @@ StartRecomp: assert( ptr != NULL ); if( s_pCurBlock->startpc != psxpc ){ - FreezeXMMRegs(1); psxRecRecompile(psxpc); - FreezeXMMRegs(0); } // could have reset @@ -1513,14 +1515,16 @@ StartRecomp: *ptr = (u32)((uptr)s_pCurBlock->pFnptr - ( (uptr)ptr + 4 )); } else { - FreezeXMMRegs(1); psxRecRecompile(startpc); - FreezeXMMRegs(0); assert( pcurblock->pFnptr != 0 ); } } else assert( s_pCurBlock->pFnptr != 0 ); + +#ifdef __x86_64__ + FreezeXMMRegs(0); //check why this is needed on x64 builds (rama) +#endif } R3000Acpu psxRec = {