qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org
Subject: [PATCH 18/47] target/arm: Use tcg_constant in simd shift expanders
Date: Tue, 26 Apr 2022 09:30:14 -0700	[thread overview]
Message-ID: <20220426163043.100432-19-richard.henderson@linaro.org> (raw)
In-Reply-To: <20220426163043.100432-1-richard.henderson@linaro.org>

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/arm/translate-a64.c | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
index 847da725ea..45abac6892 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/translate-a64.c
@@ -8353,7 +8353,7 @@ static void handle_shri_with_rndacc(TCGv_i64 tcg_res, TCGv_i64 tcg_src,
     /* Deal with the rounding step */
     if (round) {
         if (extended_result) {
-            TCGv_i64 tcg_zero = tcg_const_i64(0);
+            TCGv_i64 tcg_zero = tcg_constant_i64(0);
             if (!is_u) {
                 /* take care of sign extending tcg_res */
                 tcg_gen_sari_i64(tcg_src_hi, tcg_src, 63);
@@ -8365,7 +8365,6 @@ static void handle_shri_with_rndacc(TCGv_i64 tcg_res, TCGv_i64 tcg_src,
                                  tcg_src, tcg_zero,
                                  tcg_rnd, tcg_zero);
             }
-            tcg_temp_free_i64(tcg_zero);
         } else {
             tcg_gen_add_i64(tcg_src, tcg_src, tcg_rnd);
         }
@@ -8451,8 +8450,7 @@ static void handle_scalar_simd_shri(DisasContext *s,
     }
 
     if (round) {
-        uint64_t round_const = 1ULL << (shift - 1);
-        tcg_round = tcg_const_i64(round_const);
+        tcg_round = tcg_constant_i64(1ULL << (shift - 1));
     } else {
         tcg_round = NULL;
     }
@@ -8478,9 +8476,6 @@ static void handle_scalar_simd_shri(DisasContext *s,
 
     tcg_temp_free_i64(tcg_rn);
     tcg_temp_free_i64(tcg_rd);
-    if (round) {
-        tcg_temp_free_i64(tcg_round);
-    }
 }
 
 /* SHL/SLI - Scalar shift left */
@@ -8578,8 +8573,7 @@ static void handle_vec_simd_sqshrn(DisasContext *s, bool is_scalar, bool is_q,
     tcg_final = tcg_const_i64(0);
 
     if (round) {
-        uint64_t round_const = 1ULL << (shift - 1);
-        tcg_round = tcg_const_i64(round_const);
+        tcg_round = tcg_constant_i64(1ULL << (shift - 1));
     } else {
         tcg_round = NULL;
     }
@@ -8599,9 +8593,6 @@ static void handle_vec_simd_sqshrn(DisasContext *s, bool is_scalar, bool is_q,
         write_vec_element(s, tcg_final, rd, 1, MO_64);
     }
 
-    if (round) {
-        tcg_temp_free_i64(tcg_round);
-    }
     tcg_temp_free_i64(tcg_rn);
     tcg_temp_free_i64(tcg_rd);
     tcg_temp_free_i32(tcg_rd_narrowed);
@@ -8653,7 +8644,7 @@ static void handle_simd_qshl(DisasContext *s, bool scalar, bool is_q,
     }
 
     if (size == 3) {
-        TCGv_i64 tcg_shift = tcg_const_i64(shift);
+        TCGv_i64 tcg_shift = tcg_constant_i64(shift);
         static NeonGenTwo64OpEnvFn * const fns[2][2] = {
             { gen_helper_neon_qshl_s64, gen_helper_neon_qshlu_s64 },
             { NULL, gen_helper_neon_qshl_u64 },
@@ -8670,10 +8661,9 @@ static void handle_simd_qshl(DisasContext *s, bool scalar, bool is_q,
 
             tcg_temp_free_i64(tcg_op);
         }
-        tcg_temp_free_i64(tcg_shift);
         clear_vec_high(s, is_q, rd);
     } else {
-        TCGv_i32 tcg_shift = tcg_const_i32(shift);
+        TCGv_i32 tcg_shift = tcg_constant_i32(shift);
         static NeonGenTwoOpEnvFn * const fns[2][2][3] = {
             {
                 { gen_helper_neon_qshl_s8,
@@ -8718,7 +8708,6 @@ static void handle_simd_qshl(DisasContext *s, bool scalar, bool is_q,
 
             tcg_temp_free_i32(tcg_op);
         }
-        tcg_temp_free_i32(tcg_shift);
 
         if (!scalar) {
             clear_vec_high(s, is_q, rd);
-- 
2.34.1



  parent reply	other threads:[~2022-04-26 16:55 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-26 16:29 [PATCH 00/47] target/arm: Use tcg_constant Richard Henderson
2022-04-26 16:29 ` [PATCH 01/47] target/arm: Use tcg_constant in gen_probe_access Richard Henderson
2022-04-28  9:36   ` Peter Maydell
2022-04-26 16:29 ` [PATCH 02/47] target/arm: Use tcg_constant in gen_mte_check* Richard Henderson
2022-04-28  9:36   ` Peter Maydell
2022-04-26 16:29 ` [PATCH 03/47] target/arm: Use tcg_constant in gen_exception* Richard Henderson
2022-04-28  9:37   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 04/47] target/arm: Use tcg_constant in gen_adc_CC Richard Henderson
2022-04-28  9:39   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 05/47] target/arm: Use tcg_constant in handle_msr_i Richard Henderson
2022-04-28  9:39   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 06/47] target/arm: Use tcg_constant in handle_sys Richard Henderson
2022-04-28  9:41   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 07/47] target/arm: Use tcg_constant in disas_exc Richard Henderson
2022-04-28  9:41   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 08/47] target/arm: Use tcg_constant in gen_compare_and_swap_pair Richard Henderson
2022-04-28  9:43   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 09/47] target/arm: Use tcg_constant in disas_ld_lit Richard Henderson
2022-04-28  9:45   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 10/47] target/arm: Use tcg_constant in disas_ldst_* Richard Henderson
2022-04-28  9:45   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 11/47] target/arm: Use tcg_constant in disas_add_sum_imm* Richard Henderson
2022-04-28  9:59   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 12/47] target/arm: Use tcg_constant in disas_movw_imm Richard Henderson
2022-04-28  9:59   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 13/47] target/arm: Use tcg_constant in shift_reg_imm Richard Henderson
2022-04-28  9:59   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 14/47] target/arm: Use tcg_constant in disas_cond_select Richard Henderson
2022-04-28 10:00   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 15/47] target/arm: Use tcg_constant in handle_{rev16,crc32} Richard Henderson
2022-04-28 10:00   ` [PATCH 15/47] target/arm: Use tcg_constant in handle_{rev16, crc32} Peter Maydell
2022-04-26 16:30 ` [PATCH 16/47] target/arm: Use tcg_constant in disas_data_proc_2src Richard Henderson
2022-04-28 10:01   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 17/47] target/arm: Use tcg_constant in disas_fp* Richard Henderson
2022-04-28 10:06   ` Peter Maydell
2022-04-26 16:30 ` Richard Henderson [this message]
2022-04-28 10:09   ` [PATCH 18/47] target/arm: Use tcg_constant in simd shift expanders Peter Maydell
2022-04-26 16:30 ` [PATCH 19/47] target/arm: Use tcg_constant in simd fp/int conversion Richard Henderson
2022-04-28 10:10   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 20/47] target/arm: Use tcg_constant in 2misc expanders Richard Henderson
2022-04-28 10:11   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 21/47] target/arm: Use tcg_constant in balance of translate-a64.c Richard Henderson
2022-04-28 10:12   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 22/47] target/arm: Use tcg_constant for aa32 exceptions Richard Henderson
2022-04-28 10:21   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 23/47] target/arm: Use tcg_constant for disas_iwmmxt_insn Richard Henderson
2022-04-28 10:23   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 24/47] target/arm: Use tcg_constant for gen_{msr,mrs} Richard Henderson
2022-04-28 10:24   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 25/47] target/arm: Use tcg_constant for vector shift expanders Richard Henderson
2022-04-28 10:25   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 26/47] target/arm: Use tcg_constant for do_coproc_insn Richard Henderson
2022-04-28 10:27   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 27/47] target/arm: Use tcg_constant for gen_srs Richard Henderson
2022-04-28 10:29   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 28/47] target/arm: Use tcg_constant for op_s_{rri,rxi}_rot Richard Henderson
2022-04-28 10:29   ` [PATCH 28/47] target/arm: Use tcg_constant for op_s_{rri, rxi}_rot Peter Maydell
2022-04-26 16:30 ` [PATCH 29/47] target/arm: Use tcg_constant for MOVW, UMAAL, CRC32 Richard Henderson
2022-04-28 10:30   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 30/47] target/arm: Use tcg_constant for v7m MRS, MSR Richard Henderson
2022-04-28 10:31   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 31/47] target/arm: Use tcg_constant for TT, SAT, SMMLA Richard Henderson
2022-04-28 10:37   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 32/47] target/arm: Use tcg_constant in LDM, STM Richard Henderson
2022-04-28 10:37   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 33/47] target/arm: Use tcg_constant in CLRM, DLS, WLS, LE Richard Henderson
2022-04-28 10:38   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 34/47] target/arm: Use tcg_constant in trans_CPS_v7m Richard Henderson
2022-04-28 10:39   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 35/47] target/arm: Use tcg_constant in trans_CSEL Richard Henderson
2022-04-28 10:39   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 36/47] target/arm: Use tcg_constant for trans_INDEX_* Richard Henderson
2022-04-28 10:40   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 37/47] target/arm: Use tcg_constant in SINCDEC, INCDEC Richard Henderson
2022-04-28 10:41   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 38/47] target/arm: Use tcg_constant in FCPY, CPY Richard Henderson
2022-04-28 10:41   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 39/47] target/arm: Use tcg_constant in {incr, wrap}_last_active Richard Henderson
2022-04-28 10:42   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 40/47] target/arm: Use tcg_constant in do_clast_scalar Richard Henderson
2022-04-28 10:42   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 41/47] target/arm: Use tcg_constant in WHILE Richard Henderson
2022-04-28 10:46   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 42/47] target/arm: Use tcg_constant in LD1, ST1 Richard Henderson
2022-04-28 10:46   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 43/47] target/arm: Use tcg_constant in SUBR Richard Henderson
2022-04-28 10:47   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 44/47] target/arm: Use tcg_constant in do_zzi_{sat, ool}, do_fp_imm Richard Henderson
2022-04-28 10:48   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 45/47] target/arm: Use tcg_constant for predicate descriptors Richard Henderson
2022-04-28 10:49   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 46/47] target/arm: Use tcg_constant for do_brk{2,3} Richard Henderson
2022-04-28 10:52   ` Peter Maydell
2022-04-26 16:30 ` [PATCH 47/47] target/arm: Use tcg_constant for vector descriptor Richard Henderson
2022-04-28 10:54   ` Peter Maydell
2022-04-28 12:38 ` [PATCH 00/47] target/arm: Use tcg_constant Peter Maydell
2022-04-28 15:20   ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220426163043.100432-19-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).