sim: bfin: skip acc/ASTAT updates for moves

No point in moving unchanged acc values to the acc regs, and avoid
updating the acc ASTAT bits when only reading.  This fixes incorrect
changing of the ASTAT bits when they're only being read.

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-03-15 20:10:12 +00:00
parent 86d3d8de68
commit e3809a37d4
2 changed files with 10 additions and 6 deletions

View File

@ -1,3 +1,7 @@
2011-03-15 Robin Getz <robin.getz@analog.com>
* bfin-sim.c (decode_macfunc): Move acc STOREs behind op != 3 check.
2011-03-15 Robin Getz <robin.getz@analog.com>
* bfin-sim.c (decode_macfunc): New neg parameter. Set when the

View File

@ -1662,13 +1662,13 @@ decode_macfunc (SIM_CPU *cpu, int which, int op, int h0, int h1, int src0,
if (acc & 0x8000000000ull)
*neg = 1;
}
STORE (AXREG (which), (acc >> 32) & 0xff);
STORE (AWREG (which), acc & 0xffffffff);
STORE (ASTATREG (av[which]), sat);
if (sat)
STORE (ASTATREG (avs[which]), sat);
STORE (AXREG (which), (acc >> 32) & 0xff);
STORE (AWREG (which), acc & 0xffffffff);
STORE (ASTATREG (av[which]), sat);
if (sat)
STORE (ASTATREG (avs[which]), sat);
}
ret = extract_mult (cpu, acc, mmod, MM, fullword, overflow);