summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorskidau <skidau@gmail.com>2014-12-30 11:15:45 +1100
committerskidau <skidau@gmail.com>2014-12-30 11:15:45 +1100
commit5d55bceeb3e0d600d37bc9f34fd3e71a26dc40a7 (patch)
tree06779d5164259cb10952847d833d40353a30cf42 /Source
parentdf44b67e64c1993d8ba9077508e38807bfcf8cc3 (diff)
parent354e25582792d77e4b4b69686650a0f9d73b4b0a (diff)
Merge pull request #1773 from FioraAeterna/fixcarryearlyblockend
JIT: fix carry optimization on blocks that end early
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
index 0914f14d13..a272d120dd 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
@@ -57,7 +57,7 @@ void Jit64::FinalizeCarry(CCFlags cond)
if (js.op->wantsCA)
{
// Be careful: a breakpoint kills flags in between instructions
- if (js.next_op->wantsCAInFlags && !js.next_inst_bp)
+ if (!js.isLastInstruction && js.next_op->wantsCAInFlags && !js.next_inst_bp)
{
if (cond == CC_C || cond == CC_NC)
{
@@ -86,7 +86,7 @@ void Jit64::FinalizeCarry(bool ca)
js.carryFlagInverted = false;
if (js.op->wantsCA)
{
- if (js.next_op->wantsCAInFlags)
+ if (!js.isLastInstruction && js.next_op->wantsCAInFlags && !js.next_inst_bp)
{
if (ca)
STC();