sim: bfin: do not extend accumulator in LSHIFT insns

The logical shift insn does not sign extend before shifting, so
we shouldn't either.

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger 2011-06-18 21:58:08 +00:00
parent a56a195412
commit d5fcd950e4
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2011-06-18 Robin Getz <robin.getz@analog.com>
* bfin-sim.c (decode_dsp32shift_0): Use get_unextended_acc
rather than get_extended_acc in LSHIFT insns.
2011-06-18 Robin Getz <robin.getz@analog.com>
* bfin-sim.c (decode_macfunc): Handle MM when mmod is M_TFU.

View File

@ -5230,7 +5230,7 @@ decode_dsp32shift_0 (SIM_CPU *cpu, bu16 iw0, bu16 iw1)
HLs = !!HLs;
TRACE_INSN (cpu, "A%i = LSHIFT A%i BY R%i.L;", HLs, HLs, src0);
val = get_extended_acc (cpu, HLs);
val = get_unextended_acc (cpu, HLs);
if (shft <= 0)
val = lshiftrt (cpu, val, -shft, 40);