DSP LLE: trying to clean up exception handling. Hopefully it didn't break anything

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5381 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nakeee
2010-04-17 20:42:39 +00:00
parent fadbe78a59
commit 3fb80c52af
4 changed files with 23 additions and 26 deletions

View File

@ -66,8 +66,26 @@ void DSPEmitter::ClearIRAM() {
}
}
// Must go out of block if exception is detected
void DSPEmitter::checkExceptions() {
/*
// check if there is an external interrupt
if (! dsp_SR_is_flag_set(SR_EXT_INT_ENABLE))
return;
if (! (g_dsp.cr & CR_EXTERNAL_INT))
return;
g_dsp.cr &= ~CR_EXTERNAL_INT;
// Check for other exceptions
if (dsp_SR_is_flag_set(SR_INT_ENABLE))
return;
if (g_dsp.exceptions == 0)
return;
*/
ABI_CallFunction((void *)&DSPCore_CheckExternalInterrupt);
// Check for interrupts and exceptions
TEST(8, M(&g_dsp.exceptions), Imm8(0xff));
@ -75,16 +93,10 @@ void DSPEmitter::checkExceptions() {
ABI_CallFunction((void *)&DSPCore_CheckExceptions);
MOV(32, R(EAX), M(&g_dsp.exception_in_progress));
CMP(32, R(EAX), Imm32(0));
FixupBranch noExceptionOccurred = J_CC(CC_L);
// ABI_CallFunction((void *)DSPInterpreter::HandleLoop);
ABI_RestoreStack(0);
RET();
SetJumpTarget(skipCheck);
SetJumpTarget(noExceptionOccurred);
}
void DSPEmitter::WriteCallInterpreter(UDSPInstruction inst)