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:
parent
86d3d8de68
commit
e3809a37d4
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user