[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 07/24] target/ppc: Use tcg_gen_negsetcond_*
From: |
Nicholas Piggin |
Subject: |
Re: [PATCH 07/24] target/ppc: Use tcg_gen_negsetcond_* |
Date: |
Tue, 15 Aug 2023 22:54:54 +1000 |
On Tue Aug 8, 2023 at 1:11 PM AEST, Richard Henderson wrote:
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Tested-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> target/ppc/translate/fixedpoint-impl.c.inc | 6 ++++--
> target/ppc/translate/vmx-impl.c.inc | 8 +++-----
> 2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/target/ppc/translate/fixedpoint-impl.c.inc
> b/target/ppc/translate/fixedpoint-impl.c.inc
> index f47f1a50e8..4ce02fd3a4 100644
> --- a/target/ppc/translate/fixedpoint-impl.c.inc
> +++ b/target/ppc/translate/fixedpoint-impl.c.inc
> @@ -342,12 +342,14 @@ static bool do_set_bool_cond(DisasContext *ctx,
> arg_X_bi *a, bool neg, bool rev)
> uint32_t mask = 0x08 >> (a->bi & 0x03);
> TCGCond cond = rev ? TCG_COND_EQ : TCG_COND_NE;
> TCGv temp = tcg_temp_new();
> + TCGv zero = tcg_constant_tl(0);
>
> tcg_gen_extu_i32_tl(temp, cpu_crf[a->bi >> 2]);
> tcg_gen_andi_tl(temp, temp, mask);
> - tcg_gen_setcondi_tl(cond, cpu_gpr[a->rt], temp, 0);
> if (neg) {
> - tcg_gen_neg_tl(cpu_gpr[a->rt], cpu_gpr[a->rt]);
> + tcg_gen_negsetcond_tl(cond, cpu_gpr[a->rt], temp, zero);
> + } else {
> + tcg_gen_setcond_tl(cond, cpu_gpr[a->rt], temp, zero);
> }
> return true;
> }
> diff --git a/target/ppc/translate/vmx-impl.c.inc
> b/target/ppc/translate/vmx-impl.c.inc
> index c8712dd7d8..6d7669aabd 100644
> --- a/target/ppc/translate/vmx-impl.c.inc
> +++ b/target/ppc/translate/vmx-impl.c.inc
> @@ -1341,8 +1341,7 @@ static bool trans_VCMPEQUQ(DisasContext *ctx, arg_VC *a)
> tcg_gen_xor_i64(t1, t0, t1);
>
> tcg_gen_or_i64(t1, t1, t2);
> - tcg_gen_setcondi_i64(TCG_COND_EQ, t1, t1, 0);
> - tcg_gen_neg_i64(t1, t1);
> + tcg_gen_negsetcond_i64(TCG_COND_EQ, t1, t1, tcg_constant_i64(0));
>
> set_avr64(a->vrt, t1, true);
> set_avr64(a->vrt, t1, false);
> @@ -1365,15 +1364,14 @@ static bool do_vcmpgtq(DisasContext *ctx, arg_VC *a,
> bool sign)
>
> get_avr64(t0, a->vra, false);
> get_avr64(t1, a->vrb, false);
> - tcg_gen_setcond_i64(TCG_COND_GTU, t2, t0, t1);
> + tcg_gen_negsetcond_i64(TCG_COND_GTU, t2, t0, t1);
>
> get_avr64(t0, a->vra, true);
> get_avr64(t1, a->vrb, true);
> tcg_gen_movcond_i64(TCG_COND_EQ, t2, t0, t1, t2, tcg_constant_i64(0));
> - tcg_gen_setcond_i64(sign ? TCG_COND_GT : TCG_COND_GTU, t1, t0, t1);
> + tcg_gen_negsetcond_i64(sign ? TCG_COND_GT : TCG_COND_GTU, t1, t0, t1);
>
> tcg_gen_or_i64(t1, t1, t2);
> - tcg_gen_neg_i64(t1, t1);
>
> set_avr64(a->vrt, t1, true);
> set_avr64(a->vrt, t1, false);
- [PATCH 03/24] target/alpha: Use tcg_gen_movcond_i64 in gen_fold_mzero, (continued)
- [PATCH 03/24] target/alpha: Use tcg_gen_movcond_i64 in gen_fold_mzero, Richard Henderson, 2023/08/07
- [PATCH 04/24] target/arm: Use tcg_gen_negsetcond_*, Richard Henderson, 2023/08/07
- [PATCH 05/24] target/m68k: Use tcg_gen_negsetcond_*, Richard Henderson, 2023/08/07
- [PATCH 06/24] target/openrisc: Use tcg_gen_negsetcond_*, Richard Henderson, 2023/08/07
- [PATCH 07/24] target/ppc: Use tcg_gen_negsetcond_*, Richard Henderson, 2023/08/07
- [PATCH 08/24] target/sparc: Use tcg_gen_movcond_i64 in gen_edge, Richard Henderson, 2023/08/07
- [PATCH 09/24] target/tricore: Replace gen_cond_w with tcg_gen_negsetcond_tl, Richard Henderson, 2023/08/07
- [PATCH 10/24] tcg/ppc: Implement negsetcond_*, Richard Henderson, 2023/08/07
- [PATCH 11/24] tcg/ppc: Use the Set Boolean Extension, Richard Henderson, 2023/08/07
- [PATCH 12/24] tcg/aarch64: Implement negsetcond_*, Richard Henderson, 2023/08/07