summaryrefslogtreecommitdiffstats
path: root/sim/bfin
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-05-14 16:00:37 +0000
committerMike Frysinger <vapier@gentoo.org>2011-05-14 16:00:37 +0000
commitefac2223c4fbafd3becfef5eef323bfb5931d1c7 (patch)
tree5d32adf53bb3121e78fe03f264475f23a76f207a /sim/bfin
parent28fe96b798c2b0a7abd07b2631f6d4abeaf9d4dd (diff)
downloadppe42-binutils-efac2223c4fbafd3becfef5eef323bfb5931d1c7.tar.gz
ppe42-binutils-efac2223c4fbafd3becfef5eef323bfb5931d1c7.zip
sim: bfin: allow pushing of SP
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>
Diffstat (limited to 'sim/bfin')
-rw-r--r--sim/bfin/ChangeLog5
-rw-r--r--sim/bfin/bfin-sim.c3
2 files changed, 6 insertions, 2 deletions
diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog
index a69d6e2f96..b1d4c9bb96 100644
--- a/sim/bfin/ChangeLog
+++ b/sim/bfin/ChangeLog
@@ -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.
diff --git a/sim/bfin/bfin-sim.c b/sim/bfin/bfin-sim.c
index 13e885033b..1cdfd27a35 100644
--- a/sim/bfin/bfin-sim.c
+++ b/sim/bfin/bfin-sim.c
@@ -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;
OpenPOWER on IntegriCloud