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,