Merge pull request #6604 from lioncash/dcbz_l
Interpreter_LoadStore: Generate a program exception if dcbz_l is executed when HID2[LCE] is zero
This commit is contained in:
commit
0bfeb37a1f
|
@ -30,6 +30,11 @@ void GenerateDSIException(u32 address)
|
||||||
PowerPC::ppcState.Exceptions |= EXCEPTION_DSI;
|
PowerPC::ppcState.Exceptions |= EXCEPTION_DSI;
|
||||||
PowerPC::ppcState.spr[SPR_DAR] = address;
|
PowerPC::ppcState.spr[SPR_DAR] = address;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GenerateProgramException()
|
||||||
|
{
|
||||||
|
PowerPC::ppcState.Exceptions |= EXCEPTION_PROGRAM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 Interpreter::Helper_Get_EA(const UGeckoInstruction inst)
|
u32 Interpreter::Helper_Get_EA(const UGeckoInstruction inst)
|
||||||
|
@ -526,6 +531,12 @@ void Interpreter::dcbz(UGeckoInstruction inst)
|
||||||
|
|
||||||
void Interpreter::dcbz_l(UGeckoInstruction inst)
|
void Interpreter::dcbz_l(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
|
if (!HID2.LCE)
|
||||||
|
{
|
||||||
|
GenerateProgramException();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const u32 address = Helper_Get_EA_X(inst);
|
const u32 address = Helper_Get_EA_X(inst);
|
||||||
|
|
||||||
if (!HID0.DCE)
|
if (!HID0.DCE)
|
||||||
|
|
Loading…
Reference in New Issue