mirror of https://github.com/PCSX2/pcsx2.git
Hack! Make Resets work in Linux by not throwing an exception that is supposed to be thrown, because gcc seems unable to catch it for some bizarre reason.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2004 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
52d34a0616
commit
3d43e53928
|
@ -336,8 +336,6 @@ static __forceinline void VSyncStart(u32 sCycle)
|
|||
|
||||
if ((CSRw & 0x8))
|
||||
{
|
||||
|
||||
|
||||
if (!(GSIMR&0x800))
|
||||
{
|
||||
gsIrq();
|
||||
|
@ -412,8 +410,6 @@ __forceinline void rcntUpdate_hScanline()
|
|||
else { //HBLANK END / HRENDER Begin
|
||||
if (CSRw & 0x4)
|
||||
{
|
||||
|
||||
|
||||
if (!(GSIMR&0x400))
|
||||
{
|
||||
gsIrq();
|
||||
|
@ -448,7 +444,13 @@ __forceinline void rcntUpdate_vSync()
|
|||
{
|
||||
eeRecIsReset = false;
|
||||
cpuSetBranch();
|
||||
|
||||
// Hack! GCC is unwilling to let us throw exceptions here.
|
||||
// (Ones in Exception::*, anyways.) Work around it by skipping
|
||||
// it.
|
||||
#ifdef _MSC_VER
|
||||
throw Exception::ForceDispatcherReg();
|
||||
#endif
|
||||
}
|
||||
|
||||
VSyncEnd(vsyncCounter.sCycle);
|
||||
|
|
|
@ -96,7 +96,6 @@
|
|||
<Add option="-fno-dse" />
|
||||
<Add option="-fno-tree-dse" />
|
||||
<Add option="-pipe -msse -msse2" />
|
||||
<Add option="-fvisibility=default" />
|
||||
<Add option="-DWX_PRECOMP" />
|
||||
<Add directory="$(SvnRootDir)/common/include/" />
|
||||
<Add directory="$(SvnRootDir)/3rdparty/" />
|
||||
|
|
|
@ -266,7 +266,7 @@ void SysSuspendableThread::StateCheck( bool isCancelable )
|
|||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// EECoreThread *External Thread* Implementations
|
||||
// (Called form outside the context of this thread)
|
||||
// (Called from outside the context of this thread)
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
SysCoreThread::SysCoreThread() :
|
||||
|
|
|
@ -562,17 +562,6 @@ static void __naked DispatcherEvent()
|
|||
}
|
||||
#endif
|
||||
|
||||
static void DispatcherRegC()
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
__asm jmp DispatcherReg;
|
||||
#else
|
||||
__asm__ __volatile__(
|
||||
"jmp DispatcherReg\n"
|
||||
);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void recExecute()
|
||||
{
|
||||
// Implementation Notes:
|
||||
|
@ -611,7 +600,7 @@ static void recExecute()
|
|||
}
|
||||
|
||||
#else // _MSC_VER
|
||||
DispatcherRegC();
|
||||
DispatcherReg();
|
||||
#endif
|
||||
}
|
||||
catch( Exception::ForceDispatcherReg& )
|
||||
|
|
Loading…
Reference in New Issue