From 90e13d65c1d6cc1d474a216eee760780a6c6f1ea Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 18 Jun 2011 20:59:54 +0000 Subject: sim: bfin: handle large shift values with accumulator shift insns When the shift magnitude exceeds 32 bits, the values rotate around (since the hardware is actually a barrel shifter). So handle this edge case, update the corresponding AV bit in ASTAT which was missing previously, and tweak the AZ setting based on how the hardware behaves. Signed-off-by: Robin Getz Signed-off-by: Mike Frysinger --- sim/bfin/ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sim/bfin/ChangeLog') diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog index c702981..31efa11 100644 --- a/sim/bfin/ChangeLog +++ b/sim/bfin/ChangeLog @@ -1,5 +1,11 @@ 2011-06-18 Robin Getz + * bfin-sim.c (decode_dsp32shiftimm_0): When shift is greater than + 32, perform a left shift. Update the corresponding AV bit. Set + AZ when the low 32bits are also zero. + +2011-06-18 Robin Getz + * 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 -- cgit v1.1