diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-06-18 20:59:24 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-06-18 20:59:24 +0000 |
commit | 99dcc4dc6501c726df79173fa254faebc68a486d (patch) | |
tree | 7b6f02f91d68dbd0e7627569a616a75bd72a5ae4 /sim/bfin/ChangeLog | |
parent | 4bd2c0c31ccea3032031648e7497bb7d1c04cc39 (diff) | |
download | ppe42-binutils-99dcc4dc6501c726df79173fa254faebc68a486d.tar.gz ppe42-binutils-99dcc4dc6501c726df79173fa254faebc68a486d.zip |
sim: bfin: handle odd shift values with shift insns
The shift magnitude is a 5-bit signed value. When it is between 0 and
15, then we do the requested shift, but when it is outside of that, we
have to do the opposite.
That means we flip between lshift and ashiftrt to match the hardware.
Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'sim/bfin/ChangeLog')
-rw-r--r-- | sim/bfin/ChangeLog | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog index ffd9ff2252..c702981646 100644 --- a/sim/bfin/ChangeLog +++ b/sim/bfin/ChangeLog @@ -1,5 +1,12 @@ 2011-06-18 Robin Getz <robin.getz@analog.com> + * bfin-sim.c (decode_dsp32shiftimm_0): With left shift vector insns, + call lshift only when count is positive. Otherwise, call ashiftrt. + With arithmetic right shift insns, call ashiftrt when the value is + small enough, otherwise call lshift. + +2011-06-18 Robin Getz <robin.getz@analog.com> + * bfin-sim.c (extract_mult): Call saturate_s16 directly when mmod is M_IH rather than computing the result by hand. |