From: Richard Henderson Date: Wed, 20 Feb 2013 07:52:07 +0000 (-0800) Subject: target-arm: Use add2 in gen_add_CC X-Git-Tag: v1.5.0-rc0~598 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e3482cb8063575f9fe0f39b701a4b6dc5a55c9cd;p=thirdparty%2Fqemu.git target-arm: Use add2 in gen_add_CC Cc: Peter Maydell Signed-off-by: Richard Henderson Signed-off-by: Blue Swirl --- diff --git a/target-arm/translate.c b/target-arm/translate.c index efe76d04cb0..ca6f0af8746 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -410,12 +410,11 @@ static void gen_sub_carry(TCGv dest, TCGv t0, TCGv t1) /* dest = T0 + T1. Compute C, N, V and Z flags */ static void gen_add_CC(TCGv dest, TCGv t0, TCGv t1) { - TCGv tmp; - tcg_gen_add_i32(cpu_NF, t0, t1); + TCGv tmp = tcg_temp_new_i32(); + tcg_gen_movi_i32(tmp, 0); + tcg_gen_add2_i32(cpu_NF, cpu_CF, t0, tmp, t1, tmp); tcg_gen_mov_i32(cpu_ZF, cpu_NF); - tcg_gen_setcond_i32(TCG_COND_LTU, cpu_CF, cpu_NF, t0); tcg_gen_xor_i32(cpu_VF, cpu_NF, t0); - tmp = tcg_temp_new_i32(); tcg_gen_xor_i32(tmp, t0, t1); tcg_gen_andc_i32(cpu_VF, cpu_VF, tmp); tcg_temp_free_i32(tmp);