On Sun, 22 Jun 2025 at 00:55, Richard Henderson <richard.hender...@linaro.org> wrote: > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > target/arm/tcg/translate-sme.c | 93 ++++++++++++++++++++++++++++++++++ > target/arm/tcg/sme.decode | 71 ++++++++++++++++++++++++++ > 2 files changed, 164 insertions(+) > > diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c > index 8aae70201c..ec12bfd089 100644 > --- a/target/arm/tcg/translate-sme.c > +++ b/target/arm/tcg/translate-sme.c > @@ -751,3 +751,96 @@ TRANS_FEAT(ADD_azz_nn_s, aa64_sme2, do_azz_nn, a, MO_32, > tcg_gen_gvec_add_var) > TRANS_FEAT(SUB_azz_nn_s, aa64_sme2, do_azz_nn, a, MO_32, > tcg_gen_gvec_sub_var) > TRANS_FEAT(ADD_azz_nn_d, aa64_sme2_i16i64, do_azz_nn, a, MO_64, > tcg_gen_gvec_add_var) > TRANS_FEAT(SUB_azz_nn_d, aa64_sme2_i16i64, do_azz_nn, a, MO_64, > tcg_gen_gvec_sub_var) > + > +/* > + * Expand array multi-vector single (n1), array multi-vector (nn), > + * and array multi-vector indexed (nx), for floating-point accumulate. > + * multi: true for nn, false for n1. > + * fpst: >= 0 to set ptr argument for FPST_*, < 0 for ENV. > + * data: stuff for simd_data, including any index. > + */ > +#define FPST_ENV -1 > + > +static bool do_azz_acc_fp(DisasContext *s, int nreg, int nsel, > + int rv, int off, int zn, int zm, > + int data, int shsel, bool multi, int fpst, > + gen_helper_gvec_4_ptr *fn) > +{ > + if (sme_sm_enabled_check(s)) {
Looking more closely, this isn't the right check: these insns all call CheckStreamingSVEAndZAEnabled(), so we want sme_smza_enabled_check(). (Which makes sense, as we're accessing the zarray.) thanks -- PMM