* arm abort fix
2000-03-11 Philip Blundell <philb@gnu.org> * armemu.c (LoadSMult, LoadMult): Correct handling of aborts. Patch from Allan Skillman <Allan.Skillman@arm.com>.
This commit is contained in:
parent
0a1a0be203
commit
5d0d395e94
2 changed files with 8 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
|||
2000-03-11 Philip Blundell <philb@gnu.org>
|
||||
|
||||
* armemu.c (LoadSMult, LoadMult): Correct handling of aborts.
|
||||
Patch from Allan Skillman <Allan.Skillman@arm.com>.
|
||||
|
||||
Wed Mar 22 15:24:21 2000 glen mccready <gkm@pobox.com>
|
||||
|
||||
* wrapper.c (sim_open,sim_close): Copy into myname, free myname.
|
||||
|
|
|
@ -3457,7 +3457,7 @@ LoadMult (ARMul_State * state, ARMword instr, ARMword address, ARMword WBBase)
|
|||
state->Aborted = ARMul_DataAbortV;
|
||||
}
|
||||
|
||||
if (BIT (15))
|
||||
if (BIT (15) && !state->Aborted)
|
||||
{ /* PC is in the reg list */
|
||||
#ifdef MODE32
|
||||
state->Reg[15] = PC;
|
||||
|
@ -3520,13 +3520,13 @@ LoadSMult (ARMul_State * state, ARMword instr,
|
|||
{ /* 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)
|
||||
|
|
Loading…
Reference in a new issue