Also allow JitIL to update EXI exceptions much more frequently.
At this point, the mic branch is ready for testing by windows people at least. cmake/scons may work already, not sure.
This commit is contained in:
parent
41424d98e8
commit
3556069f9f
|
@ -210,14 +210,11 @@ void JitILAsmRoutineManager::Generate()
|
||||||
ABI_CallFunction(reinterpret_cast<void *>(&CoreTiming::Advance));
|
ABI_CallFunction(reinterpret_cast<void *>(&CoreTiming::Advance));
|
||||||
|
|
||||||
testExceptions = GetCodePtr();
|
testExceptions = GetCodePtr();
|
||||||
TEST(32, M((void *)&PowerPC::ppcState.Exceptions), Imm32(0xFFFFFFFF));
|
MOV(32, R(EAX), M(&PC));
|
||||||
FixupBranch skipExceptions = J_CC(CC_Z);
|
MOV(32, M(&NPC), R(EAX));
|
||||||
MOV(32, R(EAX), M(&PC));
|
ABI_CallFunction(reinterpret_cast<void *>(&PowerPC::CheckExceptions));
|
||||||
MOV(32, M(&NPC), R(EAX));
|
MOV(32, R(EAX), M(&NPC));
|
||||||
ABI_CallFunction(reinterpret_cast<void *>(&PowerPC::CheckExceptions));
|
MOV(32, M(&PC), R(EAX));
|
||||||
MOV(32, R(EAX), M(&NPC));
|
|
||||||
MOV(32, M(&PC), R(EAX));
|
|
||||||
SetJumpTarget(skipExceptions);
|
|
||||||
|
|
||||||
TEST(32, M((void*)PowerPC::GetStatePtr()), Imm32(0xFFFFFFFF));
|
TEST(32, M((void*)PowerPC::GetStatePtr()), Imm32(0xFFFFFFFF));
|
||||||
J_CC(CC_Z, outerLoop, true);
|
J_CC(CC_Z, outerLoop, true);
|
||||||
|
|
Loading…
Reference in New Issue