Check Mode not Bank in order to determine rocesor mode.

This commit is contained in:
Nick Clifton 2001-05-08 08:28:28 +00:00
parent 9671de4892
commit dac07255f9
2 changed files with 7 additions and 1 deletions

View file

@ -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> 2001-04-18 matthew green <mrg@redhat.com>
* armcopro.c (write_cp15_reg): Set CHANGEMODE if endianness changes. * armcopro.c (write_cp15_reg): Set CHANGEMODE if endianness changes.

View file

@ -206,7 +206,8 @@ void
ARMul_FixCPSR (ARMul_State * state, ARMword instr, ARMword rhs) ARMul_FixCPSR (ARMul_State * state, ARMword instr, ARMword rhs)
{ {
state->Cpsr = ARMul_GetCPSR (state); state->Cpsr = ARMul_GetCPSR (state);
if (state->Bank != USERBANK) if (state->Mode != USER26MODE
&& state->Mode != USER32MODE)
{ /* In user mode, only write flags */ { /* In user mode, only write flags */
if (BIT (16)) if (BIT (16))
SETPSR_C (state->Cpsr, rhs); SETPSR_C (state->Cpsr, rhs);