diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Branch.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Branch.cpp index ddeddb1fb4..fbe969370b 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Branch.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Branch.cpp @@ -192,7 +192,11 @@ void Jit64::bcctrx(UGeckoInstruction inst) SetJumpTarget(b); if (!analyzer.HasOption(PPCAnalyst::PPCAnalyzer::OPTION_CONDITIONAL_CONTINUE)) + { + gpr.Flush(); + fpr.Flush(); WriteExit(js.compilerPC + 4); + } } } @@ -239,5 +243,9 @@ void Jit64::bclrx(UGeckoInstruction inst) SetJumpTarget( pCTRDontBranch ); if (!analyzer.HasOption(PPCAnalyst::PPCAnalyzer::OPTION_CONDITIONAL_CONTINUE)) + { + gpr.Flush(); + fpr.Flush(); WriteExit(js.compilerPC + 4); + } } diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp index 6a37e9bd29..2e05ce1623 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp @@ -426,6 +426,8 @@ void Jit64::cmpXX(UGeckoInstruction inst) { if (!analyzer.HasOption(PPCAnalyst::PPCAnalyzer::OPTION_CONDITIONAL_CONTINUE)) { + gpr.Flush(); + fpr.Flush(); WriteExit(js.next_compilerPC + 4); } } @@ -2030,5 +2032,9 @@ void Jit64::twx(UGeckoInstruction inst) SetJumpTarget(dont_trap); if (!analyzer.HasOption(PPCAnalyst::PPCAnalyzer::OPTION_CONDITIONAL_CONTINUE)) + { + gpr.Flush(); + fpr.Flush(); WriteExit(js.compilerPC + 4); + } }