From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org
Subject: [PATCH 17/47] target/arm: Use tcg_constant in disas_fp*
Date: Tue, 26 Apr 2022 09:30:13 -0700 [thread overview]
Message-ID: <20220426163043.100432-18-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 | 24 +++++++-----------------
1 file changed, 7 insertions(+), 17 deletions(-)
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
index 358f42026c..847da725ea 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/translate-a64.c
@@ -5875,7 +5875,7 @@ static void handle_fp_compare(DisasContext *s, int size,
tcg_vn = read_fp_dreg(s, rn);
if (cmp_with_zero) {
- tcg_vm = tcg_const_i64(0);
+ tcg_vm = tcg_constant_i64(0);
} else {
tcg_vm = read_fp_dreg(s, rm);
}
@@ -5985,7 +5985,6 @@ static void disas_fp_compare(DisasContext *s, uint32_t insn)
static void disas_fp_ccomp(DisasContext *s, uint32_t insn)
{
unsigned int mos, type, rm, cond, rn, op, nzcv;
- TCGv_i64 tcg_flags;
TCGLabel *label_continue = NULL;
int size;
@@ -6029,9 +6028,7 @@ static void disas_fp_ccomp(DisasContext *s, uint32_t insn)
label_continue = gen_new_label();
arm_gen_test_cc(cond, label_match);
/* nomatch: */
- tcg_flags = tcg_const_i64(nzcv << 28);
- gen_set_nzcv(tcg_flags);
- tcg_temp_free_i64(tcg_flags);
+ gen_set_nzcv(tcg_constant_i64(nzcv << 28));
tcg_gen_br(label_continue);
gen_set_label(label_match);
}
@@ -6052,7 +6049,7 @@ static void disas_fp_ccomp(DisasContext *s, uint32_t insn)
static void disas_fp_csel(DisasContext *s, uint32_t insn)
{
unsigned int mos, type, rm, cond, rn, rd;
- TCGv_i64 t_true, t_false, t_zero;
+ TCGv_i64 t_true, t_false;
DisasCompare64 c;
MemOp sz;
@@ -6097,10 +6094,8 @@ static void disas_fp_csel(DisasContext *s, uint32_t insn)
read_vec_element(s, t_false, rm, 0, sz);
a64_test_cc(&c, cond);
- t_zero = tcg_const_i64(0);
- tcg_gen_movcond_i64(c.cond, t_true, c.value, t_zero, t_true, t_false);
- tcg_temp_free_i64(t_zero);
- tcg_temp_free_i64(t_false);
+ tcg_gen_movcond_i64(c.cond, t_true, c.value, tcg_constant_i64(0),
+ t_true, t_false);
a64_free_cc(&c);
/* Note that sregs & hregs write back zeros to the high bits,
@@ -6881,7 +6876,6 @@ static void disas_fp_imm(DisasContext *s, uint32_t insn)
int type = extract32(insn, 22, 2);
int mos = extract32(insn, 29, 3);
uint64_t imm;
- TCGv_i64 tcg_res;
MemOp sz;
if (mos || imm5) {
@@ -6912,10 +6906,7 @@ static void disas_fp_imm(DisasContext *s, uint32_t insn)
}
imm = vfp_expand_imm(sz, imm8);
-
- tcg_res = tcg_const_i64(imm);
- write_fp_dreg(s, rd, tcg_res);
- tcg_temp_free_i64(tcg_res);
+ write_fp_dreg(s, rd, tcg_constant_i64(imm));
}
/* Handle floating point <=> fixed point conversions. Note that we can
@@ -6933,7 +6924,7 @@ static void handle_fpfpcvt(DisasContext *s, int rd, int rn, int opcode,
tcg_fpstatus = fpstatus_ptr(type == 3 ? FPST_FPCR_F16 : FPST_FPCR);
- tcg_shift = tcg_const_i32(64 - scale);
+ tcg_shift = tcg_constant_i32(64 - scale);
if (itof) {
TCGv_i64 tcg_int = cpu_reg(s, rn);
@@ -7092,7 +7083,6 @@ static void handle_fpfpcvt(DisasContext *s, int rd, int rn, int opcode,
}
tcg_temp_free_ptr(tcg_fpstatus);
- tcg_temp_free_i32(tcg_shift);
}
/* Floating point <-> fixed point conversions
--
2.34.1
next prev parent reply other threads:[~2022-04-26 16:39 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 ` Richard Henderson [this message]
2022-04-28 10:06 ` [PATCH 17/47] target/arm: Use tcg_constant in disas_fp* Peter Maydell
2022-04-26 16:30 ` [PATCH 18/47] target/arm: Use tcg_constant in simd shift expanders Richard Henderson
2022-04-28 10:09 ` 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-18-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).