mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-01 10:39:45 -06:00
On DCBZ, mask the memory address to ensure that the address is within physical memory. The AGP disc DCBZ's against an out of bounds physical address.
This commit is contained in:
@ -331,6 +331,10 @@ void Jit64::dcbz(UGeckoInstruction inst)
|
|||||||
FixupBranch exit = J(true);
|
FixupBranch exit = J(true);
|
||||||
|
|
||||||
SwitchToNearCode();
|
SwitchToNearCode();
|
||||||
|
// Mask out the address so we don't write to MEM1 out of bounds
|
||||||
|
// FIXME: Work out why the AGP disc writes out of bounds
|
||||||
|
if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bWii)
|
||||||
|
AND(32, R(RSCRATCH), Imm32(Memory::RAM_MASK));
|
||||||
PXOR(XMM0, R(XMM0));
|
PXOR(XMM0, R(XMM0));
|
||||||
MOVAPS(MComplex(RMEM, RSCRATCH, SCALE_1, 0), XMM0);
|
MOVAPS(MComplex(RMEM, RSCRATCH, SCALE_1, 0), XMM0);
|
||||||
MOVAPS(MComplex(RMEM, RSCRATCH, SCALE_1, 16), XMM0);
|
MOVAPS(MComplex(RMEM, RSCRATCH, SCALE_1, 16), XMM0);
|
||||||
|
Reference in New Issue
Block a user