fix stmd(a/b) writeback
This commit is contained in:
parent
5e760a1536
commit
c2a57b79a0
|
@ -558,8 +558,12 @@ void A_STM(ARM* cpu)
|
||||||
if (cpu->CurInstr & (1<<22))
|
if (cpu->CurInstr & (1<<22))
|
||||||
cpu->UpdateMode((cpu->CPSR&~0x1F)|0x10, cpu->CPSR, true);
|
cpu->UpdateMode((cpu->CPSR&~0x1F)|0x10, cpu->CPSR, true);
|
||||||
|
|
||||||
if ((cpu->CurInstr & (1<<23)) && (cpu->CurInstr & (1<<21)) && !dataabort)
|
if (!dataabort)
|
||||||
|
{
|
||||||
|
if ((cpu->CurInstr & (1<<23)) && (cpu->CurInstr & (1<<21)))
|
||||||
cpu->R[baseid] = base;
|
cpu->R[baseid] = base;
|
||||||
|
}
|
||||||
|
else cpu->R[baseid] = oldbase;
|
||||||
|
|
||||||
cpu->AddCycles_CD();
|
cpu->AddCycles_CD();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue