From 0d6a0724fd946e6f9e25dc2f965d409eab3db741 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 30 Nov 2023 22:15:50 +0100 Subject: [PATCH] MMU: Always use data read for the PTE lookup in TranslatePageAddress. --- Source/Core/Core/PowerPC/MMU.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/MMU.cpp b/Source/Core/Core/PowerPC/MMU.cpp index db5d4a4b31..6c85fc54ee 100644 --- a/Source/Core/Core/PowerPC/MMU.cpp +++ b/Source/Core/Core/PowerPC/MMU.cpp @@ -1464,11 +1464,13 @@ MMU::TranslateAddressResult MMU::TranslatePageAddress(const EffectiveAddress add for (int i = 0; i < 8; i++, pteg_addr += 8) { - const u32 pteg = ReadFromHardware(pteg_addr); + constexpr XCheckTLBFlag pte_read_flag = + IsNoExceptionFlag(flag) ? XCheckTLBFlag::NoException : XCheckTLBFlag::Read; + const u32 pteg = ReadFromHardware(pteg_addr); if (pte1.Hex == pteg) { - UPTE_Hi pte2(ReadFromHardware(pteg_addr + 4)); + UPTE_Hi pte2(ReadFromHardware(pteg_addr + 4)); // set the access bits switch (flag)