summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorcomex <comexk@gmail.com>2013-10-08 19:07:30 -0400
committercomex <comexk@gmail.com>2013-10-09 15:01:55 -0400
commitd5e40bfb01759d544102e7c02569a70312b16af0 (patch)
tree3308dec32682229b9902a3a3558313357971bebc /Source/Core
parent0dd32986b8308e72c64f337217f933f8a74913fe (diff)
Don't waste time looking up the block if enableBlocklink is off anyway.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp
index 2b14810b3e..850612cb18 100644
--- a/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp
+++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp
@@ -298,18 +298,19 @@ void Jit64::WriteExit(u32 destination, int exit_num)
b->exitPtrs[exit_num] = GetWritableCodePtr();
// Link opportunity!
- int block = blocks.GetBlockNumberFromStartAddress(destination);
- if (block >= 0 && jo.enableBlocklink)
+ if (jo.enableBlocklink)
{
- // It exists! Joy of joy!
- JMP(blocks.GetBlock(block)->checkedEntry, true);
- b->linkStatus[exit_num] = true;
- }
- else
- {
- MOV(32, M(&PC), Imm32(destination));
- JMP(asm_routines.dispatcher, true);
+ int block = blocks.GetBlockNumberFromStartAddress(destination);
+ if (block >= 0)
+ {
+ // It exists! Joy of joy!
+ JMP(blocks.GetBlock(block)->checkedEntry, true);
+ b->linkStatus[exit_num] = true;
+ return;
+ }
}
+ MOV(32, M(&PC), Imm32(destination));
+ JMP(asm_routines.dispatcher, true);
}
void Jit64::WriteExitDestInEAX()