target/arm: Remove DO_ZPZZ_FP from translate-sme.c
Expand the macro at each use site. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20260826174213.614571-7-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Richard Henderson committed
Aug 26, 2026 at 10:41 UTC
51136630ee0c51cc1b7f89ba119bb99342e80bf2
1 file changed
+54
-13
target/arm/tcg/translate-sve.c
+54
-13
@@ -4425,13 +4425,6 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_fpst_arg_zzz,
4425
*** SVE Floating Point Arithmetic - Predicated Group
4426
*/
4427
4428
-#define DO_ZPZZ_FP(NAME, FEAT, name) \
4429
- static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] = { \
4430
- NULL, gen_helper_##name##_h, \
4431
- gen_helper_##name##_s, gen_helper_##name##_d \
4432
- }; \
4433
- TRANS_FEAT(NAME, FEAT, gen_gvec_fpst_arg_zpzz, name##_zpzz_fns[a->esz], a)
4434
-
4428
#define DO_ZPZZ_AH_FP(NAME, FEAT, name, ah_name) \
4429
static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] = { \
4430
NULL, gen_helper_##name##_h, \
@@ -4474,9 +4467,33 @@ DO_ZPZZ_AH_FP_B16(FMAX_zpzz, aa64_sme_or_sve, sve_fmax, sve_ah_fmax)
4467
DO_ZPZZ_FP_B16(FMINNM_zpzz, aa64_sme_or_sve, sve_fminnum)
4468
DO_ZPZZ_FP_B16(FMAXNM_zpzz, aa64_sme_or_sve, sve_fmaxnum)
4469
DO_ZPZZ_AH_FP(FABD, aa64_sme_or_sve, sve_fabd, sve_ah_fabd)
4477
-DO_ZPZZ_FP(FSCALE, aa64_sme_or_sve, sve_fscalbn)
4478
-DO_ZPZZ_FP(FDIV, aa64_sme_or_sve, sve_fdiv)
4479
-DO_ZPZZ_FP(FMULX, aa64_sme_or_sve, sve_fmulx)
4470
+
4471
+static gen_helper_gvec_4_ptr * const sve_fscalbn_zpzz_fns[4] = {
4472
+ NULL,
4473
+ gen_helper_sve_fscalbn_h,
4474
+ gen_helper_sve_fscalbn_s,
4475
+ gen_helper_sve_fscalbn_d,
4476
+};
4477
+TRANS_FEAT(FSCALE, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz,
4478
+ sve_fscalbn_zpzz_fns[a->esz], a)
4479
+
4480
+static gen_helper_gvec_4_ptr * const sve_fdiv_zpzz_fns[4] = {
4481
+ NULL,
4482
+ gen_helper_sve_fdiv_h,
4483
+ gen_helper_sve_fdiv_s,
4484
+ gen_helper_sve_fdiv_d,
4485
+};
4486
+TRANS_FEAT(FDIV, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz,
4487
+ sve_fdiv_zpzz_fns[a->esz], a)
4488
+
4489
+static gen_helper_gvec_4_ptr * const sve_fmulx_zpzz_fns[4] = {
4490
+ NULL,
4491
+ gen_helper_sve_fmulx_h,
4492
+ gen_helper_sve_fmulx_s,
4493
+ gen_helper_sve_fmulx_d,
4494
+};
4495
+TRANS_FEAT(FMULX, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz,
4496
+ sve_fmulx_zpzz_fns[a->esz], a)
4497
4498
static gen_helper_gvec_4_ptr * const sve2_famax_zpzz_fns[4] = {
4499
NULL,
@@ -8067,9 +8084,33 @@ TRANS_FEAT_NONSTREAMING(HISTCNT, aa64_sve2, gen_gvec_ool_arg_zpzz,
8084
TRANS_FEAT_NONSTREAMING(HISTSEG, aa64_sve2, gen_gvec_ool_arg_zzz,
8085
a->esz == 0 ? gen_helper_sve2_histseg : NULL, a, 0)
8086
8070
-DO_ZPZZ_FP(FADDP, aa64_sme_or_sve2, sve2_faddp_zpzz)
8071
-DO_ZPZZ_FP(FMAXNMP, aa64_sme_or_sve2, sve2_fmaxnmp_zpzz)
8072
-DO_ZPZZ_FP(FMINNMP, aa64_sme_or_sve2, sve2_fminnmp_zpzz)
8087
+static gen_helper_gvec_4_ptr * const sve_faddp_zpzz_fns[4] = {
8088
+ NULL,
8089
+ gen_helper_sve2_faddp_zpzz_h,
8090
+ gen_helper_sve2_faddp_zpzz_s,
8091
+ gen_helper_sve2_faddp_zpzz_d,
8092
+};
8093
+TRANS_FEAT(FADDP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz,
8094
+ sve_faddp_zpzz_fns[a->esz], a)
8095
+
8096
+static gen_helper_gvec_4_ptr * const sve_fmaxnmp_zpzz_fns[4] = {
8097
+ NULL,
8098
+ gen_helper_sve2_fmaxnmp_zpzz_h,
8099
+ gen_helper_sve2_fmaxnmp_zpzz_s,
8100
+ gen_helper_sve2_fmaxnmp_zpzz_d,
8101
+};
8102
+TRANS_FEAT(FMAXNMP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz,
8103
+ sve_fmaxnmp_zpzz_fns[a->esz], a)
8104
+
8105
+static gen_helper_gvec_4_ptr * const sve_fminnmp_zpzz_fns[4] = {
8106
+ NULL,
8107
+ gen_helper_sve2_fminnmp_zpzz_h,
8108
+ gen_helper_sve2_fminnmp_zpzz_s,
8109
+ gen_helper_sve2_fminnmp_zpzz_d,
8110
+};
8111
+TRANS_FEAT(FMINNMP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz,
8112
+ sve_fminnmp_zpzz_fns[a->esz], a)
8113
+
8114
DO_ZPZZ_AH_FP(FMAXP, aa64_sme_or_sve2, sve2_fmaxp_zpzz, sve2_ah_fmaxp_zpzz)
8115
DO_ZPZZ_AH_FP(FMINP, aa64_sme_or_sve2, sve2_fminp_zpzz, sve2_ah_fminp_zpzz)
8116