From d5fcd950e4f812deac7669190b30efd1781a1266 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 18 Jun 2011 21:58:08 +0000 Subject: [PATCH] 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 Signed-off-by: Mike Frysinger --- sim/bfin/ChangeLog | 5 +++++ sim/bfin/bfin-sim.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog index 5033c22..4e656d7 100644 --- a/sim/bfin/ChangeLog +++ b/sim/bfin/ChangeLog @@ -1,5 +1,10 @@ 2011-06-18 Robin Getz + * bfin-sim.c (decode_dsp32shift_0): Use get_unextended_acc + rather than get_extended_acc in LSHIFT insns. + +2011-06-18 Robin Getz + * bfin-sim.c (decode_macfunc): Handle MM when mmod is M_TFU. Check MM once when mmod is M_FU to match M_TFU better. diff --git a/sim/bfin/bfin-sim.c b/sim/bfin/bfin-sim.c index 20602b7..2c71f6c 100644 --- a/sim/bfin/bfin-sim.c +++ b/sim/bfin/bfin-sim.c @@ -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); -- 2.7.4