sim: bfin: use store buffer for VIT_MAX insns

The VIT_MAX insns can be used in parallel, so we need to use the store
buffer so we don't clobber the output register before we get a chance
to do a memory store with it.

Reported-by: Kai Iskratsch <kai@stella.at>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger
2011-09-29 03:19:47 +00:00
parent 24bdad53a9
commit 39c1f96aef
4 changed files with 63 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2011-09-28 Mike Frysinger <vapier@gentoo.org>
* bfin-sim.c (decode_dsp32shift_0): Use STORE() for VIT_MAX insns.
2011-07-05 Mike Frysinger <vapier@gentoo.org>
* interp.c (sim_do_command): Delete.

View File

@ -5516,7 +5516,7 @@ decode_dsp32shift_0 (SIM_CPU *cpu, bu16 iw0, bu16 iw1)
out = sL;
SET_AREG (0, acc0);
SET_DREG (dst0, REG_H_L (DREG (dst0), out));
STORE (DREG (dst0), REG_H_L (DREG (dst0), out));
}
else if ((sop == 2 || sop == 3) && sopcde == 9)
{
@ -5553,7 +5553,7 @@ decode_dsp32shift_0 (SIM_CPU *cpu, bu16 iw0, bu16 iw1)
out1 = s1L;
SET_AREG (0, acc0);
SET_DREG (dst0, REG_H_L (out1 << 16, out0));
STORE (DREG (dst0), REG_H_L (out1 << 16, out0));
}
else if (sop == 0 && sopcde == 10)
{