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~

Reply via email to