Skip to content

Commit

Permalink
Merge pull request #12729 from JosJuice/no-discard-at-breakpoint
Browse files Browse the repository at this point in the history
PPCAnalyst: Prevent discarding registers around breakpoints
  • Loading branch information
AdmiralCurtiss committed May 4, 2024
2 parents 1b19a75 + 3bc9008 commit 3029d8a
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions Source/Core/Core/PowerPC/PPCAnalyst.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1003,7 +1003,8 @@ u32 PPCAnalyzer::Analyze(u32 address, CodeBlock* block, CodeBuffer* buffer,

const auto ppc_mode = power_pc.GetMode();
const bool hle = !!HLE::TryReplaceFunction(ppc_symbol_db, op.address, ppc_mode);
const bool may_exit_block = hle || op.canEndBlock || op.canCauseException;
const bool breakpoint = power_pc.GetBreakPoints().IsAddressBreakPoint(op.address);
const bool may_exit_block = hle || breakpoint || op.canEndBlock || op.canCauseException;

const bool opWantsFPRF = op.wantsFPRF;
const bool opWantsCA = op.wantsCA;
Expand All @@ -1029,7 +1030,7 @@ u32 PPCAnalyzer::Analyze(u32 address, CodeBlock* block, CodeBuffer* buffer,
if (strncmp(op.opinfo->opname, "stfd", 4))
fprInXmm |= op.fregsIn;

if (hle)
if (hle || breakpoint)
{
gprInUse = BitSet32{};
fprInUse = BitSet32{};
Expand Down

0 comments on commit 3029d8a

Please sign in to comment.