sim: bfin: allow pushing of SP
authorMike Frysinger <vapier@gentoo.org>
Sat, 14 May 2011 16:00:37 +0000 (16:00 +0000)
committerMike Frysinger <vapier@gentoo.org>
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 a69d6e2f9618457846acda632c6b969a4c138068..b1d4c9bb9650af75d0c62c99fc8f89db898ba57b 100644 (file)
@@ -1,3 +1,8 @@
+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
index 13e885033bb5b9842782d659e053cc871cf6ebe9..1cdfd27a352d9f9679a655cb42517e5c1c042c9c 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;