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:
parent
0bc7dcd172
commit
364ef76ba1
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue