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

Reply via email to