@samitouri / QOSamiQemu / commits / 3ed0969795

target/arm: Add data argument to do_frint_mode

Prepare for needing a non-zero value. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20260604234852.573178-11-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Richard Henderson committed Jun 4, 2026 at 16:48 UTC 3ed0969795ef23f3287ec9abd14fe2d04748381c
1 file changed +10 -9
target/arm/tcg/translate-sve.c
+10 -9
@@ -4656,7 +4656,8 @@ TRANS_FEAT(FRINTX_m, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz,
4656 a->esz == MO_16 ? FPST_A64_F16 : FPST_A64);
4657
4658 static bool do_frint_mode(DisasContext *s, arg_rpr_esz *a,
4659 - ARMFPRounding mode, gen_helper_gvec_3_ptr *fn)
4659 + ARMFPRounding mode, int data,
4660 + gen_helper_gvec_3_ptr *fn)
4661 {
4662 unsigned vsz;
4663 TCGv_i32 tmode;
@@ -4676,22 +4677,22 @@ static bool do_frint_mode(DisasContext *s, arg_rpr_esz *a,
4677 tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd),
4678 vec_full_reg_offset(s, a->rn),
4679 pred_full_reg_offset(s, a->pg),
4679 - status, vsz, vsz, 0, fn);
4680 + status, vsz, vsz, data, fn);
4681
4682 gen_restore_rmode(tmode, status);
4683 return true;
4684 }
4685
4686 TRANS_FEAT(FRINTN_m, aa64_sme_or_sve, do_frint_mode, a,
4686 - FPROUNDING_TIEEVEN, frint_fns[a->esz])
4687 + FPROUNDING_TIEEVEN, 0, frint_fns[a->esz])
4688 TRANS_FEAT(FRINTP_m, aa64_sme_or_sve, do_frint_mode, a,
4688 - FPROUNDING_POSINF, frint_fns[a->esz])
4689 + FPROUNDING_POSINF, 0, frint_fns[a->esz])
4690 TRANS_FEAT(FRINTM_m, aa64_sme_or_sve, do_frint_mode, a,
4690 - FPROUNDING_NEGINF, frint_fns[a->esz])
4691 + FPROUNDING_NEGINF, 0, frint_fns[a->esz])
4692 TRANS_FEAT(FRINTZ_m, aa64_sme_or_sve, do_frint_mode, a,
4692 - FPROUNDING_ZERO, frint_fns[a->esz])
4693 + FPROUNDING_ZERO, 0, frint_fns[a->esz])
4694 TRANS_FEAT(FRINTA_m, aa64_sme_or_sve, do_frint_mode, a,
4694 - FPROUNDING_TIEAWAY, frint_fns[a->esz])
4695 + FPROUNDING_TIEAWAY, 0, frint_fns[a->esz])
4696
4697 static gen_helper_gvec_3_ptr * const frecpx_fns[] = {
4698 NULL, gen_helper_sve_frecpx_h,
@@ -7998,9 +7999,9 @@ TRANS_FEAT(FCVTLT_sd_m, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz,
7999 gen_helper_sve2_fcvtlt_sd, a, 0, FPST_A64)
8000
8001 TRANS_FEAT(FCVTX_ds_m, aa64_sme_or_sve2, do_frint_mode, a,
8001 - FPROUNDING_ODD, gen_helper_sve_fcvt_ds)
8002 + FPROUNDING_ODD, 0, gen_helper_sve_fcvt_ds)
8003 TRANS_FEAT(FCVTXNT_ds_m, aa64_sme_or_sve2, do_frint_mode, a,
8003 - FPROUNDING_ODD, gen_helper_sve2_fcvtnt_ds)
8004 + FPROUNDING_ODD, 0, gen_helper_sve2_fcvtnt_ds)
8005
8006 static gen_helper_gvec_3_ptr * const flogb_fns[] = {
8007 NULL, gen_helper_flogb_h,