From 6632f857bd961e24732a5633f6630dc96c6481d4 Mon Sep 17 00:00:00 2001 From: sudonim1 Date: Sat, 5 Jun 2010 22:53:01 +0000 Subject: [PATCH] Fixed probably unused SSE code for the BGTZ/BLTZ instruction family. If it was used, this was a serious bug and will probably have caused infinite loops or other major emulation errors. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3175 96395faa-99c1-11dd-bbfe-3dabce05a288 --- pcsx2/x86/ix86-32/iR5900Branch.cpp | 33 ++---------------------------- 1 file changed, 2 insertions(+), 31 deletions(-) diff --git a/pcsx2/x86/ix86-32/iR5900Branch.cpp b/pcsx2/x86/ix86-32/iR5900Branch.cpp index ecfbb7b0bf..42c3e00c69 100644 --- a/pcsx2/x86/ix86-32/iR5900Branch.cpp +++ b/pcsx2/x86/ix86-32/iR5900Branch.cpp @@ -190,40 +190,11 @@ void recSetBranchEQ(int info, int bne, int process) void recSetBranchL(int ltz) { - // Fixme: MMX problem - int regs;/* = _checkMMXreg(MMX_GPR+_Rs_, MODE_READ);*/ - - /*if( regs >= 0 ) { - - int t0reg = _allocMMXreg(-1, MMX_TEMP, 0); - - SetMMXstate(); - - PXORRtoR(t0reg, t0reg); - PCMPGTDRtoR(t0reg, regs); - PMOVMSKBMMXtoR(EAX, t0reg); - - _freeMMXreg(t0reg); - _eeFlushAllUnused(); - - TEST8ItoR( EAX, 0x80 ); - - if( ltz ) j32Ptr[ 0 ] = JZ32( 0 ); - else j32Ptr[ 0 ] = JNZ32( 0 ); - - return; - }*/ - - regs = _checkXMMreg(XMMTYPE_GPRREG, _Rs_, MODE_READ); + int regs = _checkXMMreg(XMMTYPE_GPRREG, _Rs_, MODE_READ); if( regs >= 0 ) { + SSE_MOVMSKPS_XMM_to_R32(EAX, regs); - int t0reg = _allocTempXMMreg(XMMT_INT, -1); - SSE_XORPS_XMM_to_XMM(t0reg, t0reg); - SSE2_PCMPGTD_XMM_to_XMM(t0reg, regs); - SSE_MOVMSKPS_XMM_to_R32(EAX, t0reg); - - _freeXMMreg(t0reg); _eeFlushAllUnused(); TEST8ItoR( EAX, 2 );