PatchEngine: Attempt to fix crash in IsStackSane

HostIsInstructionRAMAddress uses XCheckTLBFlag::OpcodeNoException,
so we should also use XCheckTLBFlag::OpcodeNoException when reading,
to ensure that we use the IBAT (as opposed to the DBAT) for both.
This commit is contained in:
JosJuice 2020-06-18 11:44:02 +02:00
parent 0bc7dcd172
commit 364ef76ba1
2 changed files with 3 additions and 3 deletions

View file

@ -231,7 +231,8 @@ static bool IsStackSane()
// Check the link register makes sense (that it points to a valid IBAT address)
const u32 address = PowerPC::HostRead_U32(next_SP + 4);
return PowerPC::HostIsInstructionRAMAddress(address) && 0 != PowerPC::HostRead_U32(address);
return PowerPC::HostIsInstructionRAMAddress(address) &&
0 != PowerPC::HostRead_Instruction(address);
}
bool ApplyFramePatches()

View file

@ -423,8 +423,7 @@ TryReadInstResult TryReadInstruction(u32 address)
u32 HostRead_Instruction(const u32 address)
{
UGeckoInstruction inst = HostRead_U32(address);
return inst.hex;
return ReadFromHardware<XCheckTLBFlag::OpcodeNoException, u32>(address);
}
static void Memcheck(u32 address, u32 var, bool write, size_t size)