Add code to preserve processor mode when a prefetch

abort is signalled after processing a breakpoint.
This commit is contained in:
Nick Clifton 2001-02-15 02:38:15 +00:00
parent ad995491f8
commit 44e23e575b
2 changed files with 14 additions and 0 deletions

View File

@ -1,5 +1,8 @@
2001-02-14 Nick Clifton <nickc@redhat.com>
* armemu.c: Add code to preserve processor mode when a prefetch
abort is signalled after processing a breakpoint.
* wrapper.c (sim_create_inferior): Reset processor into ARM mode
for any machine type except the early ARMs.

View File

@ -1340,6 +1340,7 @@ ARMul_Emulate26 (register ARMul_State * state)
{
ARMword value;
extern int SWI_vector_installed;
int in_thumb_mode;
/* Hardware is allowed to optionally override this
instruction and treat it as a breakpoint. Since
@ -1377,7 +1378,17 @@ ARMul_Emulate26 (register ARMul_State * state)
}
}
/* We must signal an abort to mark the next instruction as
invalid and in need of refetching. This is because if this
the instruction was a breakpoint inserted by the debugger,
the instruction could be changed back to its original value.
The abort however, will automatically reset the processor into
ARM mode, so we have to preserve the mode flag and resort it
after singalling the abort. */
in_thumb_mode = TFLAG;
ARMul_Abort (state, ARMul_PrefetchAbortV);
ASSIGNT (in_thumb_mode);
break;
}
}