On 05/04/2016 11:08 AM, Laurent Vivier wrote:
+ if (m68k_feature(s->env, M68K_FEATURE_M68000)) { + if (sign) { + tcg_gen_muls2_i32(QREG_CC_N, QREG_CC_V, src1, DREG(ext, 12)); + } else { + tcg_gen_mulu2_i32(QREG_CC_N, QREG_CC_V, src1, DREG(ext, 12)); + } + tcg_gen_mov_i32(DREG(ext, 12), QREG_CC_N); + + tcg_gen_mov_i32(QREG_CC_Z, QREG_CC_N); + tcg_gen_movi_i32(QREG_CC_C, 0); + + set_cc_op(s, CC_OP_FLAGS);
Unsigned overflow requires -(QREG_CC_V != 0). Signed overflow requires -(QREG_CC_V != (QREG_CC_N >> 31)). r~