mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Jit64: Put the exception exit in twX into farcode.
As a byproduct, this fixes the dont_trap jump not having enough available jump distance to its target in some instances (eg. in Not64).
This commit is contained in:
@ -2559,9 +2559,11 @@ void Jit64::twX(UGeckoInstruction inst)
|
|||||||
fixups.push_back(f);
|
fixups.push_back(f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FixupBranch dont_trap = J();
|
|
||||||
|
|
||||||
|
if (!fixups.empty())
|
||||||
{
|
{
|
||||||
|
SwitchToFarCode();
|
||||||
|
|
||||||
RCForkGuard gpr_guard = gpr.Fork();
|
RCForkGuard gpr_guard = gpr.Fork();
|
||||||
RCForkGuard fpr_guard = fpr.Fork();
|
RCForkGuard fpr_guard = fpr.Fork();
|
||||||
|
|
||||||
@ -2577,9 +2579,9 @@ void Jit64::twX(UGeckoInstruction inst)
|
|||||||
fpr.Flush();
|
fpr.Flush();
|
||||||
|
|
||||||
WriteExceptionExit();
|
WriteExceptionExit();
|
||||||
}
|
|
||||||
|
|
||||||
SetJumpTarget(dont_trap);
|
SwitchToNearCode();
|
||||||
|
}
|
||||||
|
|
||||||
if (!analyzer.HasOption(PPCAnalyst::PPCAnalyzer::OPTION_CONDITIONAL_CONTINUE))
|
if (!analyzer.HasOption(PPCAnalyst::PPCAnalyzer::OPTION_CONDITIONAL_CONTINUE))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user