On 05/04/2016 10:12 AM, Laurent Vivier wrote:
+ tcg_gen_or_i32(QREG_CC_Z, QREG_CC_Z, QREG_CC_N); /* !Z is sticky */
+ gen_ext(QREG_CC_Z, QREG_CC_Z, opsize, 0);
Extending Z after the OR is a bug.
The (old) high bits of Z might be set from a previous word operation (i.e. !Z)
which is exactly what's supposed to be sticky.
Since N has already been sign-extended, we've already cleared out any garbage
from the sub-word result. There's no need to do anything more here.
Same change in negx, addx, subx.
+ gen_store(s, opsize, addr_dest, QREG_CC_N);
+}
DISAS_INSN(mov3q)
Watch the spacing.
r~