[PATCH 01/20] target/arm: Remove DO_ZPZZ_FP from translate-sme.c
Richard Henderson <[email protected]>
| Newsgroups | org.nongnu.qemu-arm,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
Expand the macro at each use site. Signed-off-by: Richard Henderson <[email protected]> --- target/arm/tcg/translate-sve.c | 67 +++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 13 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index fc4cc8c479..ff6032a07f 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4415,13 +4415,6 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_fpst_arg_zzz, *** SVE Floating Point Arithmetic - Predicated Group */ -#define DO_ZPZZ_FP(NAME, FEAT, name) \ - static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] = { \ - NULL, gen_helper_##name##_h, \ - gen_helper_##name##_s, gen_helper_##name##_d \ - }; \ - TRANS_FEAT(NAME, FEAT, gen_gvec_fpst_arg_zpzz, name##_zpzz_fns[a->esz], a) - #define DO_ZPZZ_AH_FP(NAME, FEAT, name, ah_name) \ static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] = { \ NULL, gen_helper_##name##_h, \ @@ -4464,9 +4457,33 @@ DO_ZPZZ_AH_FP_B16(FMAX_zpzz, aa64_sme_or_sve, sve_fmax, sve_ah_fmax) DO_ZPZZ_FP_B16(FMINNM_zpzz, aa64_sme_or_sve, sve_fminnum) DO_ZPZZ_FP_B16(FMAXNM_zpzz, aa64_sme_or_sve, sve_fmaxnum) DO_ZPZZ_AH_FP(FABD, aa64_sme_or_sve, sve_fabd, sve_ah_fabd) -DO_ZPZZ_FP(FSCALE, aa64_sme_or_sve, sve_fscalbn) -DO_ZPZZ_FP(FDIV, aa64_sme_or_sve, sve_fdiv) -DO_ZPZZ_FP(FMULX, aa64_sme_or_sve, sve_fmulx) + +static gen_helper_gvec_4_ptr * const sve_fscalbn_zpzz_fns[4] = { + NULL, + gen_helper_sve_fscalbn_h, + gen_helper_sve_fscalbn_s, + gen_helper_sve_fscalbn_d, +}; +TRANS_FEAT(FSCALE, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fscalbn_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fdiv_zpzz_fns[4] = { + NULL, + gen_helper_sve_fdiv_h, + gen_helper_sve_fdiv_s, + gen_helper_sve_fdiv_d, +}; +TRANS_FEAT(FDIV, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fdiv_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fmulx_zpzz_fns[4] = { + NULL, + gen_helper_sve_fmulx_h, + gen_helper_sve_fmulx_s, + gen_helper_sve_fmulx_d, +}; +TRANS_FEAT(FMULX, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fmulx_zpzz_fns[a->esz], a) static gen_helper_gvec_4_ptr * const sve2_famax_zpzz_fns[4] = { NULL, @@ -8057,9 +8074,33 @@ TRANS_FEAT_NONSTREAMING(HISTCNT, aa64_sve2, gen_gvec_ool_arg_zpzz, TRANS_FEAT_NONSTREAMING(HISTSEG, aa64_sve2, gen_gvec_ool_arg_zzz, a->esz == 0 ? gen_helper_sve2_histseg : NULL, a, 0) -DO_ZPZZ_FP(FADDP, aa64_sme_or_sve2, sve2_faddp_zpzz) -DO_ZPZZ_FP(FMAXNMP, aa64_sme_or_sve2, sve2_fmaxnmp_zpzz) -DO_ZPZZ_FP(FMINNMP, aa64_sme_or_sve2, sve2_fminnmp_zpzz) +static gen_helper_gvec_4_ptr * const sve_faddp_zpzz_fns[4] = { + NULL, + gen_helper_sve2_faddp_zpzz_h, + gen_helper_sve2_faddp_zpzz_s, + gen_helper_sve2_faddp_zpzz_d, +}; +TRANS_FEAT(FADDP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz, + sve_faddp_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fmaxnmp_zpzz_fns[4] = { + NULL, + gen_helper_sve2_fmaxnmp_zpzz_h, + gen_helper_sve2_fmaxnmp_zpzz_s, + gen_helper_sve2_fmaxnmp_zpzz_d, +}; +TRANS_FEAT(FMAXNMP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz, + sve_fmaxnmp_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fminnmp_zpzz_fns[4] = { + NULL, + gen_helper_sve2_fminnmp_zpzz_h, + gen_helper_sve2_fminnmp_zpzz_s, + gen_helper_sve2_fminnmp_zpzz_d, +}; +TRANS_FEAT(FMINNMP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz, + sve_fminnmp_zpzz_fns[a->esz], a) + DO_ZPZZ_AH_FP(FMAXP, aa64_sme_or_sve2, sve2_fmaxp_zpzz, sve2_ah_fmaxp_zpzz) DO_ZPZZ_AH_FP(FMINP, aa64_sme_or_sve2, sve2_fminp_zpzz, sve2_ah_fminp_zpzz) -- 2.43.0