From e312e9d25c21d8919408353139b88fce42cc51db Mon Sep 17 00:00:00 2001 From: cottonvibes Date: Thu, 22 Jan 2009 05:40:03 +0000 Subject: [PATCH] fixed an error in a recUpdateFlags() optimization that i've had for along time and for some reason never noticed :( thats to Person on #pcsx2 for pointing it out. git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@619 a6443dda-0b58-4228-96e9-037be469359c --- pcsx2/x86/iVUmicroUpper.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pcsx2/x86/iVUmicroUpper.cpp b/pcsx2/x86/iVUmicroUpper.cpp index 5b3653de76..579df0688c 100644 --- a/pcsx2/x86/iVUmicroUpper.cpp +++ b/pcsx2/x86/iVUmicroUpper.cpp @@ -212,7 +212,7 @@ void recUpdateFlags(VURegs * VU, int reg, int info) OR16ItoR(x86temp, 0x208); // OS, O flags SHL16ItoR(EAX, 12); OR32RtoR(x86macflag, EAX); - pjmp32 = JMP32(0); // Skip Underflow Check + if (_XYZW_SS) pjmp32 = JMP32(0); // Skip Underflow Check x86SetJ8(pjmp); //-------------------------Check for Underflow flags------------------------------ @@ -244,7 +244,7 @@ void recUpdateFlags(VURegs * VU, int reg, int info) SSE_ORPS_XMM_to_XMM(reg, t1reg); // Denormals are Signed Zero, and unmodified vectors stay the same! } - x86SetJ32(pjmp32); // If we skipped the Underflow Flag Checking (when we had an Overflow), return here + if (_XYZW_SS) x86SetJ32(pjmp32); // If we skipped the Underflow Flag Checking (when we had an Overflow), return here } vuFloat2(reg, t1reg, flipMask[_X_Y_Z_W]); // Clamp overflowed vectors that were modified (remember reg's vectors have been flipped, so have to use a flipmask) @@ -263,7 +263,7 @@ void recUpdateFlags(VURegs * VU, int reg, int info) OR16ItoR(x86temp, 0x82); // SS, S flags SHL16ItoR(EAX, 4); OR32RtoR(x86macflag, EAX); - pjmp2 = JMP8(0); // If negative and not Zero, we can skip the Zero Flag checking + if (_XYZW_SS) pjmp2 = JMP8(0); // If negative and not Zero, we can skip the Zero Flag checking x86SetJ8(pjmp); //-------------------------Check for Zero flags------------------------------ @@ -281,7 +281,7 @@ void recUpdateFlags(VURegs * VU, int reg, int info) //-------------------------Finally: Send the Flags to the Mac Flag Address------------------------------ - x86SetJ8(pjmp2); // If we skipped the Zero Flag Checking, return here + if (_XYZW_SS) x86SetJ8(pjmp2); // If we skipped the Zero Flag Checking, return here if (t1regBoolean == 2) SSE_SHUFPS_XMM_to_XMM(reg, reg, 0x1B); // Flip back reg to wzyx (have to do this because reg != EEREC_TEMP) else if (t1regBoolean == 1) SSE_MOVAPS_M128_to_XMM( t1reg, (uptr)TEMPXMMData ); // Restore data from temo address