diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-05-14 16:00:37 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-05-14 16:00:37 +0000 |
commit | efac2223c4fbafd3becfef5eef323bfb5931d1c7 (patch) | |
tree | 5d32adf53bb3121e78fe03f264475f23a76f207a /sim/bfin | |
parent | 28fe96b798c2b0a7abd07b2631f6d4abeaf9d4dd (diff) | |
download | ppe42-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/ChangeLog | 5 | ||||
-rw-r--r-- | sim/bfin/bfin-sim.c | 3 |
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; |