Fix compilation errors (forgot to update cotton's recent changes before committing)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2322 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-12-07 15:01:25 +00:00
parent f52faead0c
commit 949e5f8b60
4 changed files with 13 additions and 7 deletions

View File

@ -494,7 +494,6 @@
<Unit filename="../x86/iR5900Move.h" />
<Unit filename="../x86/iR5900MultDiv.h" />
<Unit filename="../x86/iR5900Shift.h" />
<Unit filename="../x86/iVU0micro.cpp" />
<Unit filename="../x86/iVU1micro.cpp" />
<Unit filename="../x86/iVif.cpp">
<Option compiler="gcc" use="0" buildCommand="gcc $options -S $includes -c $file -o $object" />

View File

@ -63,6 +63,14 @@ public:
virtual void Step()=0;
virtual void ExecuteBlock()=0;
virtual void Clear(u32 Addr, u32 Size)=0;
// C++ Calling Conventions are unstable, and some compilers don't even allow us to take the
// address of C++ methods. We need to use a wrapper function to invoke the ExecuteBlock from
// recompiled code.
static void ExecuteBlockFromRecs( BaseCpuProvider* cpu )
{
cpu->ExecuteBlock();
}
};
// --------------------------------------------------------------------------------------
@ -76,7 +84,7 @@ class BaseVUmicroCPU : public BaseCpuProvider
public:
// Called by the PS2 VM's event manager for every internal vertical sync (occurs at either
// 50hx (pal) or 59.94hx (NTSC).
// 50hz (pal) or 59.94hz (NTSC).
//
// Exceptions:
// This method is not allowed to throw exceptions, since exceptions may not propagate

View File

@ -156,11 +156,9 @@ static void recCTC2(s32 info)
// instructions, and also sets the nextBranchCycle as needed. (air)
MOV32ItoM((uptr)&VU0.VI[_Fs_].UL,g_cpuConstRegs[_Rt_].UL[0]);
//PUSH32I( -1 );
iFlushCall(FLUSH_NOCONST);
CALLFunc((uptr)CpuVU0.ExecuteBlock);
//CALLFunc((uptr)vu0ExecMicro);
//ADD32ItoR( ESP, 4 );
xMOV(ecx, (uptr)&CpuVU0 );
xCALL(BaseCpuProvider::ExecuteBlockFromRecs);
break;
}
}

View File

@ -337,7 +337,8 @@ static void recCTC2() {
// Executing vu0 block here fixes the intro of Rachet and Clank
// sVU's COP2 has a comment that "Donald Duck" needs this too...
if (_Rd_) _eeMoveGPRtoM((uptr)&microVU0.regs->VI[_Rd_].UL, _Rt_);
CALLFunc((uptr)CpuVU0.ExecuteBlock);
xMOV(ecx, (uptr)&CpuVU0);
xCALL(BaseCpuProvider::ExecuteBlockFromRecs);
break;
}
}