diff options
| author | Richard Henderson | 2013-02-20 08:52:07 +0100 |
|---|---|---|
| committer | Blue Swirl | 2013-02-23 18:25:29 +0100 |
| commit | e3482cb8063575f9fe0f39b701a4b6dc5a55c9cd (patch) | |
| tree | f8bb27dd1e5004aba69f827daabb08bca4217b28 | |
| parent | target-arm: Use mul[us]2 and add2 in umlal et al (diff) | |
| download | qemu-e3482cb8063575f9fe0f39b701a4b6dc5a55c9cd.tar.gz qemu-e3482cb8063575f9fe0f39b701a4b6dc5a55c9cd.tar.xz qemu-e3482cb8063575f9fe0f39b701a4b6dc5a55c9cd.zip | |
target-arm: Use add2 in gen_add_CC
Cc: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
| -rw-r--r-- | target-arm/translate.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/target-arm/translate.c b/target-arm/translate.c index efe76d04cb..ca6f0af874 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); |
