[Qemu-devel] [PATCH 25/38] target/xtensa: Use tcg_gen_abs_i32

Richard Henderson posted 38 patches 6 years, 9 months ago
Maintainers: Cornelia Huck <cohuck@redhat.com>, Alistair Francis <Alistair.Francis@wdc.com>, David Gibson <david@gibson.dropbear.id.au>, Stefan Weil <sw@weilnetz.de>, Paolo Bonzini <pbonzini@redhat.com>, Aleksandar Rikalo <arikalo@wavecomp.com>, Peter Maydell <peter.maydell@linaro.org>, Aurelien Jarno <aurelien@aurel32.net>, Richard Henderson <rth@twiddle.net>, Palmer Dabbelt <palmer@sifive.com>, Claudio Fontana <claudio.fontana@huawei.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, David Hildenbrand <david@redhat.com>, Max Filippov <jcmvbkbc@gmail.com>, Andrzej Zaborowski <balrogg@gmail.com>
There is a newer version of this series
[Qemu-devel] [PATCH 25/38] target/xtensa: Use tcg_gen_abs_i32
Posted by Richard Henderson 6 years, 9 months ago
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/xtensa/translate.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c
index 65561d2c49..62be8a6f6a 100644
--- a/target/xtensa/translate.c
+++ b/target/xtensa/translate.c
@@ -1707,14 +1707,7 @@ void restore_state_to_opc(CPUXtensaState *env, TranslationBlock *tb,
 static void translate_abs(DisasContext *dc, const OpcodeArg arg[],
                           const uint32_t par[])
 {
-    TCGv_i32 zero = tcg_const_i32(0);
-    TCGv_i32 neg = tcg_temp_new_i32();
-
-    tcg_gen_neg_i32(neg, arg[1].in);
-    tcg_gen_movcond_i32(TCG_COND_GE, arg[0].out,
-                        arg[1].in, zero, arg[1].in, neg);
-    tcg_temp_free(neg);
-    tcg_temp_free(zero);
+    tcg_gen_abs_i32(arg[0].out, arg[1].in);
 }
 
 static void translate_add(DisasContext *dc, const OpcodeArg arg[],
-- 
2.17.1


Re: [Qemu-devel] [PATCH 25/38] target/xtensa: Use tcg_gen_abs_i32
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
On 4/20/19 9:34 AM, Richard Henderson wrote:
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>  target/xtensa/translate.c | 9 +--------
>  1 file changed, 1 insertion(+), 8 deletions(-)
> 
> diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c
> index 65561d2c49..62be8a6f6a 100644
> --- a/target/xtensa/translate.c
> +++ b/target/xtensa/translate.c
> @@ -1707,14 +1707,7 @@ void restore_state_to_opc(CPUXtensaState *env, TranslationBlock *tb,
>  static void translate_abs(DisasContext *dc, const OpcodeArg arg[],
>                            const uint32_t par[])
>  {
> -    TCGv_i32 zero = tcg_const_i32(0);
> -    TCGv_i32 neg = tcg_temp_new_i32();
> -
> -    tcg_gen_neg_i32(neg, arg[1].in);
> -    tcg_gen_movcond_i32(TCG_COND_GE, arg[0].out,
> -                        arg[1].in, zero, arg[1].in, neg);
> -    tcg_temp_free(neg);
> -    tcg_temp_free(zero);
> +    tcg_gen_abs_i32(arg[0].out, arg[1].in);
>  }
>  
>  static void translate_add(DisasContext *dc, const OpcodeArg arg[],
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>