From 8cd29406691d04190fcd0c74442938e95f5dcd31 Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 1 Sep 2026 10:18:43 +0000 Subject: [PATCH] better logic --- src/core/arm/nce/arm_nce.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/core/arm/nce/arm_nce.cpp b/src/core/arm/nce/arm_nce.cpp index 7baad61f6f..18a638ba1e 100644 --- a/src/core/arm/nce/arm_nce.cpp +++ b/src/core/arm/nce/arm_nce.cpp @@ -175,10 +175,9 @@ bool ArmNce::HandleGuestAccessFault(GuestContext* guest_ctx, void* raw_info, voi } else { // Corresponds to the 2nd page, this means the access is split between two pages auto const addr_c2 = (addr_c1 & ~Memory::YUZU_PAGEMASK) + Memory::YUZU_PAGESIZE; - // we need both pages to successfully be invalidated -- otherwise we immediately - // fall down to the sad path - if (memory.InvalidateNCE(addr_c1, Memory::YUZU_PAGESIZE) - && memory.InvalidateNCE(addr_c2, Memory::YUZU_PAGESIZE)) + // Always invalidate 2nd page, but only account if 1st page was invalidated properly + memory.InvalidateNCE(addr_c2, Memory::YUZU_PAGESIZE); + if (memory.InvalidateNCE(addr_c1, Memory::YUZU_PAGESIZE)) return true; } // We couldn't handle the access.