summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sim/bfin/ChangeLog4
-rw-r--r--sim/bfin/bfin-sim.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog
index 45bf0a81bf1..deaf6158616 100644
--- a/sim/bfin/ChangeLog
+++ b/sim/bfin/ChangeLog
@@ -1,5 +1,9 @@
2011-03-15 Robin Getz <robin.getz@analog.com>
+ * bfin-sim.c (decode_macfunc): Move acc STOREs behind op != 3 check.
+
+2011-03-15 Robin Getz <robin.getz@analog.com>
+
* bfin-sim.c (decode_macfunc): New neg parameter. Set when the
high bit is set after extract_mult.
(decode_dsp32mac_0): Declare n_1 and n_0. Pass to the decode_macfunc
diff --git a/sim/bfin/bfin-sim.c b/sim/bfin/bfin-sim.c
index ba0e0c2c56f..14cf41ad70d 100644
--- a/sim/bfin/bfin-sim.c
+++ b/sim/bfin/bfin-sim.c
@@ -1662,13 +1662,13 @@ decode_macfunc (SIM_CPU *cpu, int which, int op, int h0, int h1, int src0,
if (acc & 0x8000000000ull)
*neg = 1;
- }
- STORE (AXREG (which), (acc >> 32) & 0xff);
- STORE (AWREG (which), acc & 0xffffffff);
- STORE (ASTATREG (av[which]), sat);
- if (sat)
- STORE (ASTATREG (avs[which]), sat);
+ STORE (AXREG (which), (acc >> 32) & 0xff);
+ STORE (AWREG (which), acc & 0xffffffff);
+ STORE (ASTATREG (av[which]), sat);
+ if (sat)
+ STORE (ASTATREG (avs[which]), sat);
+ }
ret = extract_mult (cpu, acc, mmod, MM, fullword, overflow);