- nneeve fixed some bugs when VU extra/extra+sign clamp modes were enabled.

- i added paths.h to the vs2008 project file.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@572 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
cottonvibes 2009-02-23 03:42:39 +00:00
parent 4744652b5b
commit 09d581217d
2 changed files with 16 additions and 6 deletions

View File

@ -2922,6 +2922,10 @@
RelativePath="..\memzero.h"
>
</File>
<File
RelativePath="..\..\Paths.h"
>
</File>
<File
RelativePath="..\..\PathUtils.cpp"
>

View File

@ -2095,7 +2095,7 @@ void recVUMI_MSUB_toD(VURegs *VU, int regd, int info)
//SysPrintf ("recVUMI_MSUB_toD \n");
if (CHECK_VU_EXTRA_OVERFLOW) {
if (_Fs_) vuFloat5_useEAX( EEREC_S, EEREC_TEMP, _X_Y_Z_W );
if (_Ft_) vuFloat5_useEAX( EEREC_S, EEREC_TEMP, _X_Y_Z_W );
if (_Ft_) vuFloat5_useEAX( EEREC_T, EEREC_TEMP, _X_Y_Z_W );
vuFloat5_useEAX( EEREC_ACC, EEREC_TEMP, _X_Y_Z_W );
}
@ -2154,10 +2154,6 @@ void recVUMI_MSUB_toD(VURegs *VU, int regd, int info)
void recVUMI_MSUB_temp_toD(VURegs *VU, int regd, int info)
{
//SysPrintf ("recVUMI_MSUB_temp_toD \n");
if (CHECK_VU_EXTRA_OVERFLOW) {
if (_Fs_) vuFloat5_useEAX( EEREC_S, EEREC_TEMP, _X_Y_Z_W );
vuFloat5_useEAX( EEREC_ACC, EEREC_TEMP, _X_Y_Z_W );
}
if (_X_Y_Z_W != 0xf) {
int t1reg = _vuGetTempXMMreg(info);
@ -2210,6 +2206,11 @@ void recVUMI_MSUB_temp_toD(VURegs *VU, int regd, int info)
void recVUMI_MSUB_iq_toD(VURegs *VU, int regd, int addr, int info)
{
//SysPrintf ("recVUMI_MSUB_iq_toD \n");
if (CHECK_VU_EXTRA_OVERFLOW) {
if (_Fs_) vuFloat5_useEAX( EEREC_S, EEREC_TEMP, _X_Y_Z_W );
vuFloat5_useEAX( EEREC_ACC, EEREC_TEMP, _X_Y_Z_W );
vuFloat3(addr);
}
SSE_MOVSS_M32_to_XMM(EEREC_TEMP, addr);
SSE_SHUFPS_XMM_to_XMM(EEREC_TEMP, EEREC_TEMP, 0x00);
recVUMI_MSUB_temp_toD(VU, regd, info);
@ -2218,6 +2219,11 @@ void recVUMI_MSUB_iq_toD(VURegs *VU, int regd, int addr, int info)
void recVUMI_MSUB_xyzw_toD(VURegs *VU, int regd, int xyzw, int info)
{
//SysPrintf ("recVUMI_MSUB_xyzw_toD \n");
if (CHECK_VU_EXTRA_OVERFLOW) {
if (_Fs_) vuFloat5_useEAX( EEREC_S, EEREC_TEMP, _X_Y_Z_W );
if (_Ft_) vuFloat5_useEAX( EEREC_T, EEREC_TEMP, 1 << (3 - xyzw));
vuFloat5_useEAX( EEREC_ACC, EEREC_TEMP, _X_Y_Z_W );
}
_unpackVF_xyzw(EEREC_TEMP, EEREC_T, xyzw);
recVUMI_MSUB_temp_toD(VU, regd, info);
}
@ -3210,4 +3216,4 @@ void recVUMI_CLIP(VURegs *VU, int info)
_freeX86reg(x86temp1);
_freeX86reg(x86temp2);
}
}