+
+ * armemu.c (LoadSMult, LoadMult): Correct handling of aborts.
+
* wrapper.c (sim_open,sim_close): Copy into myname, free myname.
state->Aborted = ARMul_DataAbortV;
}
- if (BIT (15))
+ if (BIT (15) && !state->Aborted)
{ /* PC is in the reg list */
#ifdef MODE32
state->Reg[15] = PC;
{ /* load this register */
address += 4;
dest = ARMul_LoadWordS (state, address);
- if (!state->abortSig || state->Aborted)
+ if (!state->abortSig && !state->Aborted)
state->Reg[temp] = dest;
else if (!state->Aborted)
state->Aborted = ARMul_DataAbortV;
}
- if (BIT (15))
+ if (BIT (15) && !state->Aborted)
{ /* PC is in the reg list */
#ifdef MODE32
if (state->Mode != USER26MODE && state->Mode != USER32MODE)