Fixed my stupid mistakes in the previous commit.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@741 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
tmkkmac 2009-03-10 20:16:13 +00:00
parent 03a6406ff0
commit 68ec2f25a8
1 changed files with 38 additions and 86 deletions

View File

@ -1083,18 +1083,12 @@ void recPSUBSB( void )
CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED) CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED)
if( EEREC_D == EEREC_S ) SSE2_PSUBSB_XMM_to_XMM(EEREC_D, EEREC_T); if( EEREC_D == EEREC_S ) SSE2_PSUBSB_XMM_to_XMM(EEREC_D, EEREC_T);
else if( EEREC_D == EEREC_T ) { else if( EEREC_D == EEREC_T ) {
if ( cpucaps.hasSupplementalStreamingSIMD3Extensions ) {
SSSE3_PSIGNB_XMM_to_XMM(EEREC_D, EEREC_D);
SSE2_PADDSB_XMM_to_XMM(EEREC_D, EEREC_S); // -Rt + Rs
}
else {
int t0reg = _allocTempXMMreg(XMMT_INT, -1); int t0reg = _allocTempXMMreg(XMMT_INT, -1);
SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T); SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T);
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBSB_XMM_to_XMM(EEREC_D, t0reg); SSE2_PSUBSB_XMM_to_XMM(EEREC_D, t0reg);
_freeXMMreg(t0reg); _freeXMMreg(t0reg);
} }
}
else { else {
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBSB_XMM_to_XMM(EEREC_D, EEREC_T); SSE2_PSUBSB_XMM_to_XMM(EEREC_D, EEREC_T);
@ -1125,18 +1119,12 @@ void recPSUBSH( void )
CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED) CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED)
if( EEREC_D == EEREC_S ) SSE2_PSUBSW_XMM_to_XMM(EEREC_D, EEREC_T); if( EEREC_D == EEREC_S ) SSE2_PSUBSW_XMM_to_XMM(EEREC_D, EEREC_T);
else if( EEREC_D == EEREC_T ) { else if( EEREC_D == EEREC_T ) {
if ( cpucaps.hasSupplementalStreamingSIMD3Extensions ) {
SSSE3_PSIGNW_XMM_to_XMM(EEREC_D, EEREC_D);
SSE2_PADDSW_XMM_to_XMM(EEREC_D, EEREC_S); // -Rt + Rs
}
else {
int t0reg = _allocTempXMMreg(XMMT_INT, -1); int t0reg = _allocTempXMMreg(XMMT_INT, -1);
SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T); SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T);
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBSW_XMM_to_XMM(EEREC_D, t0reg); SSE2_PSUBSW_XMM_to_XMM(EEREC_D, t0reg);
_freeXMMreg(t0reg); _freeXMMreg(t0reg);
} }
}
else { else {
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBSW_XMM_to_XMM(EEREC_D, EEREC_T); SSE2_PSUBSW_XMM_to_XMM(EEREC_D, EEREC_T);
@ -1184,16 +1172,10 @@ CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED)
// normal subtraction // normal subtraction
if( EEREC_D == EEREC_S ) SSE2_PSUBD_XMM_to_XMM(EEREC_D, EEREC_T); if( EEREC_D == EEREC_S ) SSE2_PSUBD_XMM_to_XMM(EEREC_D, EEREC_T);
else if( EEREC_D == EEREC_T ) { else if( EEREC_D == EEREC_T ) {
if ( cpucaps.hasSupplementalStreamingSIMD3Extensions ) {
SSSE3_PSIGND_XMM_to_XMM(EEREC_D, EEREC_D);
SSE2_PADDD_XMM_to_XMM(EEREC_D, EEREC_S); // -Rt + Rs
}
else {
SSEX_MOVDQA_XMM_to_XMM(t2reg, EEREC_T); SSEX_MOVDQA_XMM_to_XMM(t2reg, EEREC_T);
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBD_XMM_to_XMM(EEREC_D, t2reg); SSE2_PSUBD_XMM_to_XMM(EEREC_D, t2reg);
} }
}
else { else {
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBD_XMM_to_XMM(EEREC_D, EEREC_T); SSE2_PSUBD_XMM_to_XMM(EEREC_D, EEREC_T);
@ -1346,18 +1328,12 @@ void recPSUBB( void )
CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED) CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED)
if( EEREC_D == EEREC_S ) SSE2_PSUBB_XMM_to_XMM(EEREC_D, EEREC_T); if( EEREC_D == EEREC_S ) SSE2_PSUBB_XMM_to_XMM(EEREC_D, EEREC_T);
else if( EEREC_D == EEREC_T ) { else if( EEREC_D == EEREC_T ) {
if ( cpucaps.hasSupplementalStreamingSIMD3Extensions ) {
SSSE3_PSIGNB_XMM_to_XMM(EEREC_D, EEREC_D);
SSE2_PADDB_XMM_to_XMM(EEREC_D, EEREC_S); // -Rt + Rs
}
else {
int t0reg = _allocTempXMMreg(XMMT_INT, -1); int t0reg = _allocTempXMMreg(XMMT_INT, -1);
SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T); SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T);
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBB_XMM_to_XMM(EEREC_D, t0reg); SSE2_PSUBB_XMM_to_XMM(EEREC_D, t0reg);
_freeXMMreg(t0reg); _freeXMMreg(t0reg);
} }
}
else { else {
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBB_XMM_to_XMM(EEREC_D, EEREC_T); SSE2_PSUBB_XMM_to_XMM(EEREC_D, EEREC_T);
@ -1388,18 +1364,12 @@ void recPSUBH( void )
CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED) CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED)
if( EEREC_D == EEREC_S ) SSE2_PSUBW_XMM_to_XMM(EEREC_D, EEREC_T); if( EEREC_D == EEREC_S ) SSE2_PSUBW_XMM_to_XMM(EEREC_D, EEREC_T);
else if( EEREC_D == EEREC_T ) { else if( EEREC_D == EEREC_T ) {
if ( cpucaps.hasSupplementalStreamingSIMD3Extensions ) {
SSSE3_PSIGNW_XMM_to_XMM(EEREC_D, EEREC_D);
SSE2_PADDW_XMM_to_XMM(EEREC_D, EEREC_S); // -Rt + Rs
}
else {
int t0reg = _allocTempXMMreg(XMMT_INT, -1); int t0reg = _allocTempXMMreg(XMMT_INT, -1);
SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T); SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T);
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBW_XMM_to_XMM(EEREC_D, t0reg); SSE2_PSUBW_XMM_to_XMM(EEREC_D, t0reg);
_freeXMMreg(t0reg); _freeXMMreg(t0reg);
} }
}
else { else {
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBW_XMM_to_XMM(EEREC_D, EEREC_T); SSE2_PSUBW_XMM_to_XMM(EEREC_D, EEREC_T);
@ -1430,18 +1400,12 @@ void recPSUBW( void )
CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED) CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED)
if( EEREC_D == EEREC_S ) SSE2_PSUBD_XMM_to_XMM(EEREC_D, EEREC_T); if( EEREC_D == EEREC_S ) SSE2_PSUBD_XMM_to_XMM(EEREC_D, EEREC_T);
else if( EEREC_D == EEREC_T ) { else if( EEREC_D == EEREC_T ) {
if ( cpucaps.hasSupplementalStreamingSIMD3Extensions ) {
SSSE3_PSIGND_XMM_to_XMM(EEREC_D, EEREC_D);
SSE2_PADDD_XMM_to_XMM(EEREC_D, EEREC_S); // -Rt + Rs
}
else {
int t0reg = _allocTempXMMreg(XMMT_INT, -1); int t0reg = _allocTempXMMreg(XMMT_INT, -1);
SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T); SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T);
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBD_XMM_to_XMM(EEREC_D, t0reg); SSE2_PSUBD_XMM_to_XMM(EEREC_D, t0reg);
_freeXMMreg(t0reg); _freeXMMreg(t0reg);
} }
}
else { else {
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBD_XMM_to_XMM(EEREC_D, EEREC_T); SSE2_PSUBD_XMM_to_XMM(EEREC_D, EEREC_T);
@ -1860,18 +1824,12 @@ void recPSUBUB()
CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED) CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED)
if( EEREC_D == EEREC_S ) SSE2_PSUBUSB_XMM_to_XMM(EEREC_D, EEREC_T); if( EEREC_D == EEREC_S ) SSE2_PSUBUSB_XMM_to_XMM(EEREC_D, EEREC_T);
else if( EEREC_D == EEREC_T ) { else if( EEREC_D == EEREC_T ) {
if ( cpucaps.hasSupplementalStreamingSIMD3Extensions ) {
SSSE3_PSIGNB_XMM_to_XMM(EEREC_D, EEREC_D);
SSE2_PADDUSB_XMM_to_XMM(EEREC_D, EEREC_S); // -Rt + Rs
}
else {
int t0reg = _allocTempXMMreg(XMMT_INT, -1); int t0reg = _allocTempXMMreg(XMMT_INT, -1);
SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T); SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T);
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBUSB_XMM_to_XMM(EEREC_D, t0reg); SSE2_PSUBUSB_XMM_to_XMM(EEREC_D, t0reg);
_freeXMMreg(t0reg); _freeXMMreg(t0reg);
} }
}
else { else {
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBUSB_XMM_to_XMM(EEREC_D, EEREC_T); SSE2_PSUBUSB_XMM_to_XMM(EEREC_D, EEREC_T);
@ -1889,18 +1847,12 @@ void recPSUBUH()
CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED) CPU_SSE2_XMMCACHE_START(XMMINFO_READS|XMMINFO_READT|XMMINFO_WRITED)
if( EEREC_D == EEREC_S ) SSE2_PSUBUSW_XMM_to_XMM(EEREC_D, EEREC_T); if( EEREC_D == EEREC_S ) SSE2_PSUBUSW_XMM_to_XMM(EEREC_D, EEREC_T);
else if( EEREC_D == EEREC_T ) { else if( EEREC_D == EEREC_T ) {
if ( cpucaps.hasSupplementalStreamingSIMD3Extensions ) {
SSSE3_PSIGNW_XMM_to_XMM(EEREC_D, EEREC_D);
SSE2_PADDUSW_XMM_to_XMM(EEREC_D, EEREC_S); // -Rt + Rs
}
else {
int t0reg = _allocTempXMMreg(XMMT_INT, -1); int t0reg = _allocTempXMMreg(XMMT_INT, -1);
SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T); SSEX_MOVDQA_XMM_to_XMM(t0reg, EEREC_T);
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBUSW_XMM_to_XMM(EEREC_D, t0reg); SSE2_PSUBUSW_XMM_to_XMM(EEREC_D, t0reg);
_freeXMMreg(t0reg); _freeXMMreg(t0reg);
} }
}
else { else {
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PSUBUSW_XMM_to_XMM(EEREC_D, EEREC_T); SSE2_PSUBUSW_XMM_to_XMM(EEREC_D, EEREC_T);