mirror of
https://github.com/holub/mame
synced 2025-05-23 06:08:48 +03:00
Fixed an ARM CPU core bug with pre-indexed addressing opcodes, that was preventing Poizone to boot [Tim Schuerewegen]
new working game ---------------------- Poizone [Tim Schuerewegen]
This commit is contained in:
parent
96ce772581
commit
7ae0a6898e
@ -604,11 +604,17 @@ static void HandleMemSingle( ARM_REGS* cpustate, UINT32 insn )
|
|||||||
/* Pre-indexed addressing */
|
/* Pre-indexed addressing */
|
||||||
if (insn & INSN_SDT_U)
|
if (insn & INSN_SDT_U)
|
||||||
{
|
{
|
||||||
|
if (rn != eR15)
|
||||||
rnv = (GetRegister(cpustate, rn) + off);
|
rnv = (GetRegister(cpustate, rn) + off);
|
||||||
|
else
|
||||||
|
rnv = (R15 & ADDRESS_MASK) + off;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (rn != eR15)
|
||||||
rnv = (GetRegister(cpustate, rn) - off);
|
rnv = (GetRegister(cpustate, rn) - off);
|
||||||
|
else
|
||||||
|
rnv = (R15 & ADDRESS_MASK) - off;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (insn & INSN_SDT_W)
|
if (insn & INSN_SDT_W)
|
||||||
@ -619,7 +625,7 @@ static void HandleMemSingle( ARM_REGS* cpustate, UINT32 insn )
|
|||||||
}
|
}
|
||||||
else if (rn == eR15)
|
else if (rn == eR15)
|
||||||
{
|
{
|
||||||
rnv = (rnv & ADDRESS_MASK) + 8;
|
rnv = rnv + 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user