From 7fb67bbb1f756fe0305c01c2fae5e447aa84bb49 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 17 Sep 2023 09:33:16 -0700 Subject: [PATCH] irjit: Fix breakpoints with block linking. --- Core/MIPS/IR/IRFrontend.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Core/MIPS/IR/IRFrontend.cpp b/Core/MIPS/IR/IRFrontend.cpp index 5f9cfae80dfc..5b2a3896018a 100644 --- a/Core/MIPS/IR/IRFrontend.cpp +++ b/Core/MIPS/IR/IRFrontend.cpp @@ -339,8 +339,8 @@ void IRFrontend::CheckBreakpoint(u32 addr) { if (CBreakPoints::IsAddressBreakPoint(addr)) { FlushAll(); - if (GetCompilerPC() != js.blockStart) - ir.Write(IROp::SetPCConst, 0, ir.AddConstant(GetCompilerPC())); + // Can't skip this even at the start of a block, might impact block linking. + ir.Write(IROp::SetPCConst, 0, ir.AddConstant(GetCompilerPC())); RestoreRoundingMode(); // At this point, downcount HAS the delay slot, but not the instruction itself. @@ -370,8 +370,8 @@ void IRFrontend::CheckMemoryBreakpoint(int rs, int offset) { if (CBreakPoints::HasMemChecks()) { FlushAll(); - if (GetCompilerPC() != js.blockStart) - ir.Write(IROp::SetPCConst, 0, ir.AddConstant(GetCompilerPC())); + // Can't skip this even at the start of a block, might impact block linking. + ir.Write(IROp::SetPCConst, 0, ir.AddConstant(GetCompilerPC())); RestoreRoundingMode(); // At this point, downcount HAS the delay slot, but not the instruction itself.