aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sim/arm/ChangeLog5
-rw-r--r--sim/arm/armsupp.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/sim/arm/ChangeLog b/sim/arm/ChangeLog
index 5c031ab..ee7b652 100644
--- a/sim/arm/ChangeLog
+++ b/sim/arm/ChangeLog
@@ -1,3 +1,8 @@
+2001-05-08 Jens-Christian Lache <lache@tu-harburg.de>
+
+ * armsupp.c (ARMul_FixCPSR): Check Mode not Bank in order to
+ determine rocesor mode.
+
2001-04-18 matthew green <mrg@redhat.com>
* armcopro.c (write_cp15_reg): Set CHANGEMODE if endianness changes.
diff --git a/sim/arm/armsupp.c b/sim/arm/armsupp.c
index 2d0390d..99b6099 100644
--- a/sim/arm/armsupp.c
+++ b/sim/arm/armsupp.c
@@ -206,7 +206,8 @@ void
ARMul_FixCPSR (ARMul_State * state, ARMword instr, ARMword rhs)
{
state->Cpsr = ARMul_GetCPSR (state);
- if (state->Bank != USERBANK)
+ if (state->Mode != USER26MODE
+ && state->Mode != USER32MODE)
{ /* In user mode, only write flags */
if (BIT (16))
SETPSR_C (state->Cpsr, rhs);