From patchwork Fri Oct 5 23:55:02 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [15/23] target-sparc: Use movcond in gen_generic_branch Date: Fri, 05 Oct 2012 13:55:02 -0000 From: Richard Henderson X-Patchwork-Id: 189649 Message-Id: <1349481310-9237-16-git-send-email-rth@twiddle.net> To: qemu-devel@nongnu.org Cc: Blue Swirl Signed-off-by: Richard Henderson --- target-sparc/translate.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/target-sparc/translate.c b/target-sparc/translate.c index 9aef8e5..c1a1dc4 100644 --- a/target-sparc/translate.c +++ b/target-sparc/translate.c @@ -1107,19 +1107,15 @@ static inline void gen_branch_a(DisasContext *dc, target_ulong pc1, static inline void gen_generic_branch(DisasContext *dc) { - int l1, l2; - - l1 = gen_new_label(); - l2 = gen_new_label(); + TCGv npc0 = tcg_const_tl(dc->jump_pc[0]); + TCGv npc1 = tcg_const_tl(dc->jump_pc[1]); + TCGv zero = tcg_const_tl(0); - tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_cond, 0, l1); + tcg_gen_movcond_tl(TCG_COND_NE, cpu_npc, cpu_cond, zero, npc0, npc1); - tcg_gen_movi_tl(cpu_npc, dc->jump_pc[0]); - tcg_gen_br(l2); - - gen_set_label(l1); - tcg_gen_movi_tl(cpu_npc, dc->jump_pc[1]); - gen_set_label(l2); + tcg_temp_free(npc0); + tcg_temp_free(npc1); + tcg_temp_free(zero); } /* call this function before using the condition register as it may