All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org
Subject: [PATCH 102/114] target/arm: Use TRANS_FEAT for gen_gvec_fpst_zzzzp
Date: Fri, 27 May 2022 11:18:55 -0700	[thread overview]
Message-ID: <20220527181907.189259-103-richard.henderson@linaro.org> (raw)
In-Reply-To: <20220527181907.189259-1-richard.henderson@linaro.org>

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/arm/translate-sve.c | 42 +++++++++++++-------------------------
 1 file changed, 14 insertions(+), 28 deletions(-)

diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c
index 8f50956d3b..75854a7c6c 100644
--- a/target/arm/translate-sve.c
+++ b/target/arm/translate-sve.c
@@ -3998,22 +3998,14 @@ TRANS_FEAT(FCADD, aa64_sve, gen_gvec_fpst_zzzp, fcadd_fns[a->esz],
            a->rd, a->rn, a->rm, a->pg, a->rot,
            a->esz == MO_16 ? FPST_FPCR_F16 : FPST_FPCR)
 
-static bool do_fmla(DisasContext *s, arg_rprrr_esz *a,
-                    gen_helper_gvec_5_ptr *fn)
-{
-    return gen_gvec_fpst_zzzzp(s, fn, a->rd, a->rn, a->rm, a->ra, a->pg, 0,
-                               a->esz == MO_16 ? FPST_FPCR_F16 : FPST_FPCR);
-}
-
 #define DO_FMLA(NAME, name) \
-static bool trans_##NAME(DisasContext *s, arg_rprrr_esz *a)          \
-{                                                                    \
-    static gen_helper_gvec_5_ptr * const fns[4] = {                  \
-        NULL, gen_helper_sve_##name##_h,                             \
-        gen_helper_sve_##name##_s, gen_helper_sve_##name##_d         \
-    };                                                               \
-    return do_fmla(s, a, fns[a->esz]);                               \
-}
+    static gen_helper_gvec_5_ptr * const name##_fns[4] = {              \
+        NULL, gen_helper_sve_##name##_h,                                \
+        gen_helper_sve_##name##_s, gen_helper_sve_##name##_d            \
+    };                                                                  \
+    TRANS_FEAT(NAME, aa64_sve, gen_gvec_fpst_zzzzp, name##_fns[a->esz], \
+               a->rd, a->rn, a->rm, a->ra, a->pg, 0,                    \
+               a->esz == MO_16 ? FPST_FPCR_F16 : FPST_FPCR)
 
 DO_FMLA(FMLA_zpzzz, fmla_zpzzz)
 DO_FMLA(FMLS_zpzzz, fmls_zpzzz)
@@ -4022,19 +4014,13 @@ DO_FMLA(FNMLS_zpzzz, fnmls_zpzzz)
 
 #undef DO_FMLA
 
-static bool trans_FCMLA_zpzzz(DisasContext *s, arg_FCMLA_zpzzz *a)
-{
-    static gen_helper_gvec_5_ptr * const fns[4] = {
-        NULL,
-        gen_helper_sve_fcmla_zpzzz_h,
-        gen_helper_sve_fcmla_zpzzz_s,
-        gen_helper_sve_fcmla_zpzzz_d,
-    };
-
-    return gen_gvec_fpst_zzzzp(s, fns[a->esz], a->rd, a->rn, a->rm,
-                               a->ra, a->pg, a->rot,
-                               a->esz == MO_16 ? FPST_FPCR_F16 : FPST_FPCR);
-}
+static gen_helper_gvec_5_ptr * const fcmla_fns[4] = {
+    NULL,                         gen_helper_sve_fcmla_zpzzz_h,
+    gen_helper_sve_fcmla_zpzzz_s, gen_helper_sve_fcmla_zpzzz_d,
+};
+TRANS_FEAT(FCMLA_zpzzz, aa64_sve, gen_gvec_fpst_zzzzp, fcmla_fns[a->esz],
+           a->rd, a->rn, a->rm, a->ra, a->pg, a->rot,
+           a->esz == MO_16 ? FPST_FPCR_F16 : FPST_FPCR)
 
 static bool trans_FCMLA_zzxz(DisasContext *s, arg_FCMLA_zzxz *a)
 {
-- 
2.34.1



  parent reply	other threads:[~2022-05-27 20:26 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-27 18:17 [PATCH 000/114] target/arm: Rewrite sve feature tests Richard Henderson
2022-05-27 18:17 ` [PATCH 001/114] target/arm: Introduce TRANS, TRANS_FEAT Richard Henderson
2022-05-27 18:17 ` [PATCH 002/114] target/arm: Move null function and sve check into gen_gvec_ool_zz Richard Henderson
2022-05-27 18:17 ` [PATCH 003/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_zz Richard Henderson
2022-05-27 18:17 ` [PATCH 004/114] target/arm: Move null function and sve check into gen_gvec_ool_zzz Richard Henderson
2022-05-27 18:17 ` [PATCH 005/114] target/arm: Introduce gen_gvec_ool_arg_zzz Richard Henderson
2022-05-27 18:17 ` [PATCH 006/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzz Richard Henderson
2022-05-27 18:17 ` [PATCH 007/114] target/arm: Use TRANS_FEAT for do_sve2_zzz_ool Richard Henderson
2022-05-27 18:17 ` [PATCH 008/114] target/arm: Move null function and sve check into gen_gvec_ool_zzzz Richard Henderson
2022-05-27 18:17 ` [PATCH 009/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_zzzz Richard Henderson
2022-05-27 18:17 ` [PATCH 010/114] target/arm: Introduce gen_gvec_ool_arg_zzzz Richard Henderson
2022-05-27 18:17 ` [PATCH 011/114] target/arm: Use TRANS_FEAT for do_sve2_zzzz_ool Richard Henderson
2022-05-27 18:17 ` [PATCH 012/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzzz Richard Henderson
2022-05-27 18:17 ` [PATCH 013/114] target/arm: Rename do_zzxz_ool to gen_gvec_ool_arg_zzxz Richard Henderson
2022-05-27 18:17 ` [PATCH 014/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zzxz Richard Henderson
2022-05-27 18:17 ` [PATCH 015/114] target/arm: Use TRANS_FEAT for do_sve2_zzz_data Richard Henderson
2022-05-27 18:17 ` [PATCH 016/114] target/arm: Use TRANS_FEAT for do_sve2_zzzz_data Richard Henderson
2022-05-27 18:17 ` [PATCH 017/114] target/arm: Use TRANS_FEAT for do_sve2_zzw_data Richard Henderson
2022-05-27 18:17 ` [PATCH 018/114] target/arm: Use TRANS_FEAT for USDOT_zzzz Richard Henderson
2022-05-27 18:17 ` [PATCH 019/114] target/arm: Move null function and sve check into gen_gvec_ool_zzp Richard Henderson
2022-05-27 18:17 ` [PATCH 020/114] target/arm: Introduce gen_gvec_ool_arg_zpz Richard Henderson
2022-05-27 18:17 ` [PATCH 021/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpz Richard Henderson
2022-05-27 18:17 ` [PATCH 022/114] target/arm: Use TRANS_FEAT for do_sve2_zpz_data Richard Henderson
2022-05-27 18:17 ` [PATCH 023/114] target/arm: Rename do_zpzi_ool to gen_gvec_ool_arg_zpzi Richard Henderson
2022-05-27 18:17 ` [PATCH 024/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpzi Richard Henderson
2022-05-27 18:17 ` [PATCH 025/114] target/arm: Move null function and sve check into gen_gvec_ool_zzzp Richard Henderson
2022-05-27 18:17 ` [PATCH 026/114] target/arm: Introduce gen_gvec_ool_arg_zpzz Richard Henderson
2022-05-27 18:17 ` [PATCH 027/114] target/arm: Use TRANS_FEAT for gen_gvec_ool_arg_zpzz Richard Henderson
2022-05-27 18:17 ` [PATCH 028/114] target/arm: Use TRANS_FEAT for do_sve2_zpzz_ool Richard Henderson
2022-05-27 18:17 ` [PATCH 029/114] target/arm: Merge gen_gvec_fn_zz into do_mov_z Richard Henderson
2022-05-27 18:17 ` [PATCH 030/114] target/arm: Move null function and sve check into gen_gvec_fn_zzz Richard Henderson
2022-05-27 18:17 ` [PATCH 031/114] target/arm: Rename do_zzz_fn to gen_gvec_fn_arg_zzz Richard Henderson
2022-05-27 18:17 ` [PATCH 032/114] target/arm: More use of gen_gvec_fn_arg_zzz Richard Henderson
2022-05-27 18:17 ` [PATCH 033/114] target/arm: Use TRANS_FEAT for gen_gvec_fn_arg_zzz Richard Henderson
2022-05-27 18:17 ` [PATCH 034/114] target/arm: Use TRANS_FEAT for do_sve2_fn_zzz Richard Henderson
2022-05-27 18:17 ` [PATCH 035/114] target/arm: Use TRANS_FEAT for RAX1 Richard Henderson
2022-05-27 18:17 ` [PATCH 036/114] target/arm: Introduce gen_gvec_fn_arg_zzzz Richard Henderson
2022-05-27 18:17 ` [PATCH 037/114] target/arm: Use TRANS_FEAT for do_sve2_zzzz_fn Richard Henderson
2022-05-27 18:17 ` [PATCH 038/114] target/arm: Introduce gen_gvec_fn_zzi Richard Henderson
2022-05-27 18:17 ` [PATCH 039/114] target/arm: Use TRANS_FEAT for do_zz_dbm Richard Henderson
2022-05-27 18:17 ` [PATCH 040/114] target/arm: Hoist sve access check through do_sel_z Richard Henderson
2022-05-27 18:17 ` [PATCH 041/114] target/arm: Introduce gen_gvec_fn_arg_zzi Richard Henderson
2022-05-27 18:17 ` [PATCH 042/114] target/arm: Use TRANS_FEAT for do_sve2_fn2i Richard Henderson
2022-05-27 18:17 ` [PATCH 043/114] target/arm: Use TRANS_FEAT for do_vpz_ool Richard Henderson
2022-05-27 18:17 ` [PATCH 044/114] target/arm: Use TRANS_FEAT for do_shift_imm Richard Henderson
2022-05-27 18:17 ` [PATCH 045/114] target/arm: Introduce do_shift_zpzi Richard Henderson
2022-05-27 18:17 ` [PATCH 046/114] target/arm: Use TRANS_FEAT for do_shift_zpzi Richard Henderson
2022-05-27 18:18 ` [PATCH 047/114] target/arm: Use TRANS_FEAT for do_zpzzz_ool Richard Henderson
2022-05-27 18:18 ` [PATCH 048/114] target/arm: Move sve check into do_index Richard Henderson
2022-05-27 18:18 ` [PATCH 049/114] target/arm: Use TRANS_FEAT for do_index Richard Henderson
2022-05-27 18:18 ` [PATCH 050/114] target/arm: Use TRANS_FEAT for do_adr Richard Henderson
2022-05-27 18:18 ` [PATCH 051/114] target/arm: Use TRANS_FEAT for do_predset Richard Henderson
2022-05-27 18:18 ` [PATCH 052/114] target/arm: Use TRANS_FEAT for RDFFR, WRFFR Richard Henderson
2022-05-27 18:18 ` [PATCH 053/114] target/arm: Use TRANS_FEAT for do_pfirst_pnext Richard Henderson
2022-05-27 18:18 ` [PATCH 054/114] target/arm: Use TRANS_FEAT for do_EXT Richard Henderson
2022-05-27 18:18 ` [PATCH 055/114] target/arm: Use TRANS_FEAT for do_perm_pred3 Richard Henderson
2022-05-27 18:18 ` [PATCH 056/114] target/arm: Use TRANS_FEAT for do_perm_pred2 Richard Henderson
2022-05-27 18:18 ` [PATCH 057/114] target/arm: Move sve zip high_ofs into simd_data Richard Henderson
2022-10-27 17:29   ` Idan Horowitz
2022-05-27 18:18 ` [PATCH 058/114] target/arm: Use gen_gvec_ool_arg_zzz for do_zip, do_zip_q Richard Henderson
2022-05-27 18:18 ` [PATCH 059/114] target/arm: Use TRANS_FEAT " Richard Henderson
2022-05-27 18:18 ` [PATCH 060/114] target/arm: Use TRANS_FEAT for do_clast_vector Richard Henderson
2022-05-27 18:18 ` [PATCH 061/114] target/arm: Use TRANS_FEAT for do_clast_fp Richard Henderson
2022-05-27 18:18 ` [PATCH 062/114] target/arm: Use TRANS_FEAT for do_clast_general Richard Henderson
2022-05-27 18:18 ` [PATCH 063/114] target/arm: Use TRANS_FEAT for do_last_fp Richard Henderson
2022-05-27 18:18 ` [PATCH 064/114] target/arm: Use TRANS_FEAT for do_last_general Richard Henderson
2022-05-27 18:18 ` [PATCH 065/114] target/arm: Use TRANS_FEAT for SPLICE Richard Henderson
2022-05-27 18:18 ` [PATCH 066/114] target/arm: Use TRANS_FEAT for do_ppzz_flags Richard Henderson
2022-05-27 18:18 ` [PATCH 067/114] target/arm: Use TRANS_FEAT for do_sve2_ppzz_flags Richard Henderson
2022-05-27 18:18 ` [PATCH 068/114] target/arm: Use TRANS_FEAT for do_ppzi_flags Richard Henderson
2022-05-27 18:18 ` [PATCH 069/114] target/arm: Use TRANS_FEAT for do_brk2, do_brk3 Richard Henderson
2022-05-27 18:18 ` [PATCH 070/114] target/arm: Use TRANS_FEAT for MUL_zzi Richard Henderson
2022-05-27 18:18 ` [PATCH 071/114] target/arm: Reject dup_i w/ shifted byte early Richard Henderson
2022-05-27 18:18 ` [PATCH 072/114] target/arm: Reject add/sub " Richard Henderson
2022-05-27 18:18 ` [PATCH 073/114] target/arm: Reject copy " Richard Henderson
2022-05-27 18:18 ` [PATCH 074/114] target/arm: Use TRANS_FEAT for ADD_zzi Richard Henderson
2022-05-27 18:18 ` [PATCH 075/114] target/arm: Use TRANS_FEAT for do_zzi_sat Richard Henderson
2022-05-27 18:18 ` [PATCH 076/114] target/arm: Use TRANS_FEAT for do_zzi_ool Richard Henderson
2022-05-27 18:18 ` [PATCH 077/114] target/arm: Introduce gen_gvec_{ptr,fpst}_zzzz Richard Henderson
2022-05-27 18:18 ` [PATCH 078/114] target/arm: Use TRANS_FEAT for FMMLA Richard Henderson
2022-05-27 18:18 ` [PATCH 079/114] target/arm: Move sve check into gen_gvec_fn_ppp Richard Henderson
2022-05-27 18:18 ` [PATCH 080/114] target/arm: Implement NOT (prediates) alias Richard Henderson
2022-05-27 18:18 ` [PATCH 081/114] target/arm: Use TRANS_FEAT for SEL_zpzz Richard Henderson
2022-05-27 18:18 ` [PATCH 082/114] target/arm: Use TRANS_FEAT for MOVPRFX Richard Henderson
2022-05-27 18:18 ` [PATCH 083/114] target/arm: Use TRANS_FEAT for FMLA Richard Henderson
2022-05-27 18:18 ` [PATCH 084/114] target/arm: Use TRANS_FEAT for BFMLA Richard Henderson
2022-05-27 18:18 ` [PATCH 085/114] target/arm: Rename do_zzz_fp to gen_gvec_ool_fpst_arg_zzz Richard Henderson
2022-05-27 18:18 ` [PATCH 086/114] target/arm: Use TRANS_FEAT for DO_FP3 Richard Henderson
2022-05-27 18:18 ` [PATCH 087/114] target/arm: Use TRANS_FEAT for FMUL_zzx Richard Henderson
2022-05-27 18:18 ` [PATCH 088/114] target/arm: Use TRANS_FEAT for FTMAD Richard Henderson
2022-05-27 18:18 ` [PATCH 089/114] target/arm: Move null function and sve check into do_reduce Richard Henderson
2022-05-27 18:18 ` [PATCH 090/114] target/arm: Use TRANS_FEAT for do_reduce Richard Henderson
2022-05-27 18:18 ` [PATCH 091/114] target/arm: Use TRANS_FEAT for FRECPE, FRSQRTE Richard Henderson
2022-05-27 18:18 ` [PATCH 092/114] target/arm: Expand frint_fns for MO_8 Richard Henderson
2022-05-27 18:18 ` [PATCH 093/114] target/arm: Rename do_zpz_ptr to gen_gvec_ool_fpst_arg_zpz Richard Henderson
2022-05-27 18:18 ` [PATCH 094/114] target/arm: Move null function and sve check into do_frint_mode Richard Henderson
2022-05-27 18:18 ` [PATCH 095/114] target/arm: Use TRANS_FEAT for do_frint_mode Richard Henderson
2022-05-27 18:18 ` [PATCH 096/114] target/arm: Use TRANS_FEAT for FLOGB Richard Henderson
2022-05-27 18:18 ` [PATCH 097/114] target/arm: Use TRANS_FEAT for do_ppz_fp Richard Henderson
2022-05-27 18:18 ` [PATCH 098/114] target/arm: Rename do_zpzz_ptr to gen_gvec_fpst_arg_zpzz Richard Henderson
2022-05-27 18:18 ` [PATCH 099/114] target/arm: Use TRANS_FEAT for gen_gvec_fpst_arg_zpzz Richard Henderson
2022-05-27 18:18 ` [PATCH 100/114] target/arm: Use TRANS_FEAT for FCADD Richard Henderson
2022-05-27 18:18 ` [PATCH 101/114] target/arm: Introduce gen_gvec_fpst_zzzzp Richard Henderson
2022-05-27 18:18 ` Richard Henderson [this message]
2022-05-27 18:18 ` [PATCH 103/114] target/arm: Move null function and sve check into do_fp_imm Richard Henderson
2022-05-27 18:18 ` [PATCH 104/114] target/arm: Use TRANS_FEAT for DO_FP_IMM Richard Henderson
2022-05-27 18:18 ` [PATCH 105/114] target/arm: Use TRANS_FEAT for DO_FPCMP Richard Henderson
2022-05-27 18:18 ` [PATCH 106/114] target/arm: Remove assert in trans_FCMLA_zzxz Richard Henderson
2022-05-27 18:19 ` [PATCH 107/114] target/arm: Use TRANS_FEAT for FCMLA_zzxz Richard Henderson
2022-05-27 18:19 ` [PATCH 108/114] target/arm: Use TRANS_FEAT for do_narrow_extract Richard Henderson
2022-05-27 18:19 ` [PATCH 109/114] target/arm: Use TRANS_FEAT for do_shll_tb Richard Henderson
2022-05-27 18:19 ` [PATCH 110/114] target/arm: Use TRANS_FEAT for do_shr_narrow Richard Henderson
2022-05-27 18:19 ` [PATCH 111/114] target/arm: Use TRANS_FEAT for do_FMLAL_zzzw Richard Henderson
2022-05-27 18:19 ` [PATCH 112/114] target/arm: Use TRANS_FEAT for do_FMLAL_zzxw Richard Henderson
2022-05-27 18:19 ` [PATCH 113/114] target/arm: Add sve feature check for remaining trans_* functions Richard Henderson
2022-05-27 18:19 ` [PATCH 114/114] target/arm: Remove aa64_sve check from before disas_sve Richard Henderson
2022-05-30 15:11 ` [PATCH 000/114] target/arm: Rewrite sve feature tests Peter Maydell

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=20220527181907.189259-103-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.