A few fixes for MMI stuff by tmkk, and disabled a logging printf in release builds.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@526 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
ramapcsx2 2009-02-18 14:03:35 +00:00
parent 0ca2f4d2be
commit 058ec7db30
3 changed files with 17 additions and 15 deletions

View File

@ -1049,18 +1049,18 @@ void PMADDW() {
void PSLLVW() { void PSLLVW() {
if (!_Rd_) return; if (!_Rd_) return;
cpuRegs.GPR.r[_Rd_].UD[0] = (s32)(cpuRegs.GPR.r[_Rt_].UL[0] << cpuRegs.GPR.r[_Rd_].SD[0] = (s64)(s32)(cpuRegs.GPR.r[_Rt_].UL[0] <<
(cpuRegs.GPR.r[_Rs_].UL[0] & 0x1F)); (cpuRegs.GPR.r[_Rs_].UL[0] & 0x1F));
cpuRegs.GPR.r[_Rd_].UD[1] = (s32)(cpuRegs.GPR.r[_Rt_].UL[2] << cpuRegs.GPR.r[_Rd_].SD[1] = (s64)(s32)(cpuRegs.GPR.r[_Rt_].UL[2] <<
(cpuRegs.GPR.r[_Rs_].UL[2] & 0x1F)); (cpuRegs.GPR.r[_Rs_].UL[2] & 0x1F));
} }
void PSRLVW() { void PSRLVW() {
if (!_Rd_) return; if (!_Rd_) return;
cpuRegs.GPR.r[_Rd_].UD[0] = (s32)(cpuRegs.GPR.r[_Rt_].UL[0] >> cpuRegs.GPR.r[_Rd_].SD[0] = (s64)(s32)(cpuRegs.GPR.r[_Rt_].UL[0] >>
(cpuRegs.GPR.r[_Rs_].UL[0] & 0x1F)); (cpuRegs.GPR.r[_Rs_].UL[0] & 0x1F));
cpuRegs.GPR.r[_Rd_].UD[1] = (s32)(cpuRegs.GPR.r[_Rt_].UL[2] >> cpuRegs.GPR.r[_Rd_].SD[1] = (s64)(s32)(cpuRegs.GPR.r[_Rt_].UL[2] >>
(cpuRegs.GPR.r[_Rs_].UL[2] & 0x1F)); (cpuRegs.GPR.r[_Rs_].UL[2] & 0x1F));
} }
@ -1430,9 +1430,9 @@ void PMADDUW() {
void PSRAVW() { void PSRAVW() {
if (!_Rd_) return; if (!_Rd_) return;
cpuRegs.GPR.r[_Rd_].UD[0] = (cpuRegs.GPR.r[_Rt_].SL[0] >> cpuRegs.GPR.r[_Rd_].SD[0] = (s64)(cpuRegs.GPR.r[_Rt_].SL[0] >>
(cpuRegs.GPR.r[_Rs_].UL[0] & 0x1F)); (cpuRegs.GPR.r[_Rs_].UL[0] & 0x1F));
cpuRegs.GPR.r[_Rd_].UD[1] = (cpuRegs.GPR.r[_Rt_].SL[2] >> cpuRegs.GPR.r[_Rd_].SD[1] = (s64)(cpuRegs.GPR.r[_Rt_].SL[2] >>
(cpuRegs.GPR.r[_Rs_].UL[2] & 0x1F)); (cpuRegs.GPR.r[_Rs_].UL[2] & 0x1F));
} }

View File

@ -1783,7 +1783,7 @@ int VIF1transfer(u32 *data, int size, int istag) {
continue; continue;
} }
if(vif1.tag.size != 0) SysPrintf("no vif1 cmd but tag size is left last cmd read %x\n", vif1Regs->code); if(vif1.tag.size != 0) DevCon::Error("no vif1 cmd but tag size is left last cmd read %x\n", params vif1Regs->code);
if(vif1.irq) break; if(vif1.irq) break;

View File

@ -3401,7 +3401,6 @@ CPU_SSE2_XMMCACHE_START((((_Rs_)&&(_Rt_))?XMMINFO_READS:0)|(((_Rs_)&&(_Rt_))?XMM
SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S); SSEX_MOVDQA_XMM_to_XMM(EEREC_D, EEREC_S);
SSE2_PMULUDQ_XMM_to_XMM(EEREC_D, EEREC_T); SSE2_PMULUDQ_XMM_to_XMM(EEREC_D, EEREC_T);
} }
SSEX_MOVDQA_XMM_to_XMM(EEREC_HI, EEREC_D);
} }
else { else {
if( !_Rs_ || !_Rt_ ) SSE2_PXOR_XMM_to_XMM(EEREC_HI, EEREC_HI); if( !_Rs_ || !_Rt_ ) SSE2_PXOR_XMM_to_XMM(EEREC_HI, EEREC_HI);
@ -3412,7 +3411,10 @@ CPU_SSE2_XMMCACHE_START((((_Rs_)&&(_Rt_))?XMMINFO_READS:0)|(((_Rs_)&&(_Rt_))?XMM
} }
// add from LO/HI // add from LO/HI
if ( _Rd_ ) SSE2_PADDQ_XMM_to_XMM(EEREC_D, EEREC_LO); if ( _Rd_ ) {
SSE2_PADDQ_XMM_to_XMM(EEREC_D, EEREC_LO);
SSEX_MOVDQA_XMM_to_XMM(EEREC_HI, EEREC_D);
}
else SSE2_PADDQ_XMM_to_XMM(EEREC_HI, EEREC_LO); else SSE2_PADDQ_XMM_to_XMM(EEREC_HI, EEREC_LO);
// interleave & sign extend // interleave & sign extend