Fix bug in BIOS skip hack (which I always forget to test since I never use it personally ;)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2340 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-12-14 12:37:27 +00:00
parent c17455c702
commit fa95c0f191
4 changed files with 10 additions and 15 deletions

View File

@ -385,13 +385,13 @@ static void intExecute()
try {
while( true )
execI();
} catch( Exception::ForceDispatcherReg& ) { }
} catch( Exception::ExitCpuExecute& ) { }
}
static void intCheckExecutionState()
{
if( GetCoreThread().HasPendingStateChangeRequest() )
throw Exception::ForceDispatcherReg();
throw Exception::ExitCpuExecute();
}
static void intStep()

View File

@ -344,6 +344,7 @@
<Unit filename="../gui/ConsoleLogger.cpp" />
<Unit filename="../gui/ConsoleLogger.h" />
<Unit filename="../gui/Dialogs/AboutBoxDialog.cpp" />
<Unit filename="../gui/Dialogs/AssertionDialog.cpp" />
<Unit filename="../gui/Dialogs/ConfigurationDialog.cpp" />
<Unit filename="../gui/Dialogs/ConfigurationDialog.h" />
<Unit filename="../gui/Dialogs/ConfirmationDialogs.cpp" />

View File

@ -32,16 +32,10 @@ namespace Exception
// Implementation Note: this exception has no meaningful type information and we don't
// care to have it be caught by any BaseException handlers lying about, so let's not
// derive from BaseException :D
class ForceDispatcherReg
class ExitCpuExecute
{
public:
explicit ForceDispatcherReg() { }
};
class ExitRecExecute
{
public:
explicit ExitRecExecute() { }
explicit ExitCpuExecute() { }
};
}
#ifndef __LINUX__

View File

@ -264,7 +264,7 @@ u32* recGetImm64(u32 hi, u32 lo)
if (recConstBufPtr >= recConstBuf + RECCONSTBUF_SIZE)
{
Console.WriteLn( "EErec const buffer filled; Resetting..." );
throw Exception::ForceDispatcherReg();
throw Exception::ExitCpuExecute();
/*for (u32 *p = recConstBuf; p < recConstBuf + RECCONSTBUF_SIZE; p += 2)
{
@ -675,7 +675,7 @@ static void recCheckExecutionState()
if( GetCoreThread().HasPendingStateChangeRequest() )
{
#if PCSX2_SEH
throw Exception::ForceDispatcherReg();
throw Exception::ExitCpuExecute();
#else
// Without SEH we'll need to hop to a safehouse point outside the scope of recompiled
// code. C++ exceptions can't cross the mighty chasm in the stackframe that the recompiler
@ -699,7 +699,7 @@ static void recExecute()
try {
EnterRecompiledCode();
}
catch( Exception::ForceDispatcherReg& ) { }
catch( Exception::ExitCpuExecute& ) { }
#else
@ -837,7 +837,7 @@ void recClear(u32 addr, u32 size)
static void recExitExecution()
{
#if PCSX2_SEH
throw Exception::ExitRecExecute();
throw Exception::ExitCpuExecute();
#else
longjmp( m_SetJmp_StateCheck, 1 );
#endif