mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 19:50:13 +08:00
* 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:
@ -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>
|
Wed Mar 22 15:24:21 2000 glen mccready <gkm@pobox.com>
|
||||||
|
|
||||||
* wrapper.c (sim_open,sim_close): Copy into myname, free myname.
|
* 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;
|
state->Aborted = ARMul_DataAbortV;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BIT (15))
|
if (BIT (15) && !state->Aborted)
|
||||||
{ /* PC is in the reg list */
|
{ /* PC is in the reg list */
|
||||||
#ifdef MODE32
|
#ifdef MODE32
|
||||||
state->Reg[15] = PC;
|
state->Reg[15] = PC;
|
||||||
@ -3520,13 +3520,13 @@ LoadSMult (ARMul_State * state, ARMword instr,
|
|||||||
{ /* load this register */
|
{ /* load this register */
|
||||||
address += 4;
|
address += 4;
|
||||||
dest = ARMul_LoadWordS (state, address);
|
dest = ARMul_LoadWordS (state, address);
|
||||||
if (!state->abortSig || state->Aborted)
|
if (!state->abortSig && !state->Aborted)
|
||||||
state->Reg[temp] = dest;
|
state->Reg[temp] = dest;
|
||||||
else if (!state->Aborted)
|
else if (!state->Aborted)
|
||||||
state->Aborted = ARMul_DataAbortV;
|
state->Aborted = ARMul_DataAbortV;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BIT (15))
|
if (BIT (15) && !state->Aborted)
|
||||||
{ /* PC is in the reg list */
|
{ /* PC is in the reg list */
|
||||||
#ifdef MODE32
|
#ifdef MODE32
|
||||||
if (state->Mode != USER26MODE && state->Mode != USER32MODE)
|
if (state->Mode != USER26MODE && state->Mode != USER32MODE)
|
||||||
|
Reference in New Issue
Block a user