OSDN Git Service

sim: bfin: allow pushing of SP
authorvapier <vapier>
Sat, 14 May 2011 16:00:37 +0000 (16:00 +0000)
committervapier <vapier>
Sat, 14 May 2011 16:00:37 +0000 (16:00 +0000)
The hardware respects this insn, and some code (like the on-chip bootrom)
uses it, so allow it.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
sim/bfin/ChangeLog
sim/bfin/bfin-sim.c

index a69d6e2..b1d4c9b 100644 (file)
@@ -1,5 +1,10 @@
 2011-05-14  Mike Frysinger  <vapier@gentoo.org>
 
+       * bfin-sim.c (decode_PushPopReg_0): Delete (grp == 1 && reg == 6)
+       check for SP reg.
+
+2011-05-14  Mike Frysinger  <vapier@gentoo.org>
+
        * dv-bfin_uart.c (bfin_uart_write_byte): Add a mcr arg.  Declare a
        local uart.  When LOOP_ENA is set in mcr, write to the saved byte
        and count fields of the uart.
index 13e8850..1cdfd27 100644 (file)
@@ -2035,8 +2035,7 @@ decode_PushPopReg_0 (SIM_CPU *cpu, bu16 iw0)
   else
     {
       TRACE_INSN (cpu, "[--SP] = %s;", reg_name);
-      /* Can't push SP.  */
-      if (INSN_LEN == 8 || (grp == 1 && reg == 6))
+      if (INSN_LEN == 8)
        illegal_instruction_combination (cpu);
 
       sp -= 4;