diff options
-rw-r--r-- | sim/bfin/ChangeLog | 4 | ||||
-rw-r--r-- | sim/bfin/bfin-sim.c | 12 |
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); |