summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2021-12-18 15:07:50 -0500
committerGitHub <noreply@github.com>2021-12-18 15:07:50 -0500
commitd8e347c8e8fd4c5e67cbf8b523506e182bc14ef4 (patch)
tree13254170837c95894c026852710be48fe2af5ee6 /Source/Core
parent08d907dec86f672c0767351df8ba9b1c1b28efe3 (diff)
parent48560135b34b4b9866daa870b3537dbe86eb953f (diff)
Merge pull request #10275 from AdmiralCurtiss/twX-5-byte-jmp
Jit64: Use farcode for exception exit in twX.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
index 1435863eb5..ac16144d09 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
@@ -2559,9 +2559,11 @@ void Jit64::twX(UGeckoInstruction inst)
fixups.push_back(f);
}
}
- FixupBranch dont_trap = J();
+ if (!fixups.empty())
{
+ SwitchToFarCode();
+
RCForkGuard gpr_guard = gpr.Fork();
RCForkGuard fpr_guard = fpr.Fork();
@@ -2577,9 +2579,9 @@ void Jit64::twX(UGeckoInstruction inst)
fpr.Flush();
WriteExceptionExit();
- }
- SetJumpTarget(dont_trap);
+ SwitchToNearCode();
+ }
if (!analyzer.HasOption(PPCAnalyst::PPCAnalyzer::OPTION_CONDITIONAL_CONTINUE))
{