summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorShawn Hoffman <godisgovernment@gmail.com>2011-10-09 03:41:31 -0700
committerShawn Hoffman <godisgovernment@gmail.com>2011-10-09 03:41:31 -0700
commit3556069f9f32d187d91a67c86daa6bbcaf16e972 (patch)
tree338cf2abfc4c78536a2b1725b48625f8d75d8deb /Source/Core
parent41424d98e8ccd089411d844b38c8eb9b56e43adb (diff)
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.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/Src/PowerPC/Jit64IL/JitILAsm.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/Source/Core/Core/Src/PowerPC/Jit64IL/JitILAsm.cpp b/Source/Core/Core/Src/PowerPC/Jit64IL/JitILAsm.cpp
index adf215135d..da94c881e3 100644
--- a/Source/Core/Core/Src/PowerPC/Jit64IL/JitILAsm.cpp
+++ b/Source/Core/Core/Src/PowerPC/Jit64IL/JitILAsm.cpp
@@ -210,14 +210,11 @@ void JitILAsmRoutineManager::Generate()
ABI_CallFunction(reinterpret_cast<void *>(&CoreTiming::Advance));
testExceptions = GetCodePtr();
- TEST(32, M((void *)&PowerPC::ppcState.Exceptions), Imm32(0xFFFFFFFF));
- FixupBranch skipExceptions = J_CC(CC_Z);
- MOV(32, R(EAX), M(&PC));
- MOV(32, M(&NPC), R(EAX));
- ABI_CallFunction(reinterpret_cast<void *>(&PowerPC::CheckExceptions));
- MOV(32, R(EAX), M(&NPC));
- MOV(32, M(&PC), R(EAX));
- SetJumpTarget(skipExceptions);
+ MOV(32, R(EAX), M(&PC));
+ MOV(32, M(&NPC), R(EAX));
+ ABI_CallFunction(reinterpret_cast<void *>(&PowerPC::CheckExceptions));
+ MOV(32, R(EAX), M(&NPC));
+ MOV(32, M(&PC), R(EAX));
TEST(32, M((void*)PowerPC::GetStatePtr()), Imm32(0xFFFFFFFF));
J_CC(CC_Z, outerLoop, true);