diff options
| author | comex <comexk@gmail.com> | 2013-10-08 19:07:30 -0400 |
|---|---|---|
| committer | comex <comexk@gmail.com> | 2013-10-09 15:01:55 -0400 |
| commit | d5e40bfb01759d544102e7c02569a70312b16af0 (patch) | |
| tree | 3308dec32682229b9902a3a3558313357971bebc /Source/Core | |
| parent | 0dd32986b8308e72c64f337217f933f8a74913fe (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.cpp | 21 |
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() |
