diff options
Diffstat (limited to 'sim/bfin')
-rw-r--r-- | sim/bfin/ChangeLog | 5 | ||||
-rw-r--r-- | sim/bfin/bfin-sim.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog index 900dc50cb5..0e37dddc14 100644 --- a/sim/bfin/ChangeLog +++ b/sim/bfin/ChangeLog @@ -1,5 +1,10 @@ 2011-03-23 Robin Getz <robin.getz@analog.com> + * bfin-sim.c (decode_dsp32alu_0): Set A1 to a1_lo when up_hi is false, + and set A0 to a0_lo when up_lo is false. + +2011-03-23 Robin Getz <robin.getz@analog.com> + * bfin-sim.c (decode_dsp32alu_0): Call saturate_s40_astat instead of saturate_s40, and use the v parameter to update the AV bit. Set the AC bit only when the final result is 0. diff --git a/sim/bfin/bfin-sim.c b/sim/bfin/bfin-sim.c index c78fe1a5a5..85e281a9d1 100644 --- a/sim/bfin/bfin-sim.c +++ b/sim/bfin/bfin-sim.c @@ -5041,11 +5041,16 @@ decode_dsp32alu_0 (SIM_CPU *cpu, bu16 iw0, bu16 iw1) SET_AREG (1, src_hi); SET_DREG (dst1, PREG (0)); } + else + SET_AREG (1, a1_lo); + if (up_lo) { SET_AREG (0, src_lo); SET_DREG (dst0, PREG (0)); } + else + SET_AREG (0, a0_lo); } else illegal_instruction (cpu); |