target/arm: Rename MOVA for translate

Prepare for more kinds of MOVA from SME2 by renaming the
existing SME1 MOVA to indicate tile to/from vector.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20250704142112.1018902-23-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Richard Henderson 2025-07-04 08:19:45 -06:00 committed by Peter Maydell
parent 51a64f1e77
commit 2c43bee917
2 changed files with 27 additions and 27 deletions

View file

@ -27,29 +27,29 @@ ZERO_zt0 11000000 01 001 00000000000 00000001
### SME Move into/from Array
%mova_rs 13:2 !function=plus_12
&mova esz rs pg zr za off v:bool to_vec:bool
&mova_p esz rs pg zr za off v:bool
MOVA 11000000 00 00000 0 v:1 .. pg:3 zr:5 0 off:4 \
&mova to_vec=0 rs=%mova_rs esz=0 za=0
MOVA 11000000 01 00000 0 v:1 .. pg:3 zr:5 0 za:1 off:3 \
&mova to_vec=0 rs=%mova_rs esz=1
MOVA 11000000 10 00000 0 v:1 .. pg:3 zr:5 0 za:2 off:2 \
&mova to_vec=0 rs=%mova_rs esz=2
MOVA 11000000 11 00000 0 v:1 .. pg:3 zr:5 0 za:3 off:1 \
&mova to_vec=0 rs=%mova_rs esz=3
MOVA 11000000 11 00000 1 v:1 .. pg:3 zr:5 0 za:4 \
&mova to_vec=0 rs=%mova_rs esz=4 off=0
MOVA_tz 11000000 00 00000 0 v:1 .. pg:3 zr:5 0 off:4 \
&mova_p rs=%mova_rs esz=0 za=0
MOVA_tz 11000000 01 00000 0 v:1 .. pg:3 zr:5 0 za:1 off:3 \
&mova_p rs=%mova_rs esz=1
MOVA_tz 11000000 10 00000 0 v:1 .. pg:3 zr:5 0 za:2 off:2 \
&mova_p rs=%mova_rs esz=2
MOVA_tz 11000000 11 00000 0 v:1 .. pg:3 zr:5 0 za:3 off:1 \
&mova_p rs=%mova_rs esz=3
MOVA_tz 11000000 11 00000 1 v:1 .. pg:3 zr:5 0 za:4 \
&mova_p rs=%mova_rs esz=4 off=0
MOVA 11000000 00 00001 0 v:1 .. pg:3 0 off:4 zr:5 \
&mova to_vec=1 rs=%mova_rs esz=0 za=0
MOVA 11000000 01 00001 0 v:1 .. pg:3 0 za:1 off:3 zr:5 \
&mova to_vec=1 rs=%mova_rs esz=1
MOVA 11000000 10 00001 0 v:1 .. pg:3 0 za:2 off:2 zr:5 \
&mova to_vec=1 rs=%mova_rs esz=2
MOVA 11000000 11 00001 0 v:1 .. pg:3 0 za:3 off:1 zr:5 \
&mova to_vec=1 rs=%mova_rs esz=3
MOVA 11000000 11 00001 1 v:1 .. pg:3 0 za:4 zr:5 \
&mova to_vec=1 rs=%mova_rs esz=4 off=0
MOVA_zt 11000000 00 00001 0 v:1 .. pg:3 0 off:4 zr:5 \
&mova_p rs=%mova_rs esz=0 za=0
MOVA_zt 11000000 01 00001 0 v:1 .. pg:3 0 za:1 off:3 zr:5 \
&mova_p rs=%mova_rs esz=1
MOVA_zt 11000000 10 00001 0 v:1 .. pg:3 0 za:2 off:2 zr:5 \
&mova_p rs=%mova_rs esz=2
MOVA_zt 11000000 11 00001 0 v:1 .. pg:3 0 za:3 off:1 zr:5 \
&mova_p rs=%mova_rs esz=3
MOVA_zt 11000000 11 00001 1 v:1 .. pg:3 0 za:4 zr:5 \
&mova_p rs=%mova_rs esz=4 off=0
### SME Move into/from ZT0

View file

@ -151,7 +151,7 @@ static bool trans_ZERO_zt0(DisasContext *s, arg_ZERO_zt0 *a)
return true;
}
static bool trans_MOVA(DisasContext *s, arg_MOVA *a)
static bool do_mova_tile(DisasContext *s, arg_mova_p *a, bool to_vec)
{
static gen_helper_gvec_4 * const h_fns[5] = {
gen_helper_sve_sel_zpzz_b, gen_helper_sve_sel_zpzz_h,
@ -173,9 +173,6 @@ static bool trans_MOVA(DisasContext *s, arg_MOVA *a)
TCGv_i32 t_desc;
int svl;
if (!dc_isar_feature(aa64_sme, s)) {
return false;
}
if (!sme_smza_enabled_check(s)) {
return true;
}
@ -189,14 +186,14 @@ static bool trans_MOVA(DisasContext *s, arg_MOVA *a)
if (a->v) {
/* Vertical slice -- use sme mova helpers. */
if (a->to_vec) {
if (to_vec) {
zc_fns[a->esz](t_zr, t_za, t_pg, t_desc);
} else {
cz_fns[a->esz](t_za, t_zr, t_pg, t_desc);
}
} else {
/* Horizontal slice -- reuse sve sel helpers. */
if (a->to_vec) {
if (to_vec) {
h_fns[a->esz](t_zr, t_za, t_zr, t_pg, t_desc);
} else {
h_fns[a->esz](t_za, t_zr, t_za, t_pg, t_desc);
@ -205,6 +202,9 @@ static bool trans_MOVA(DisasContext *s, arg_MOVA *a)
return true;
}
TRANS_FEAT(MOVA_tz, aa64_sme, do_mova_tile, a, false)
TRANS_FEAT(MOVA_zt, aa64_sme, do_mova_tile, a, true)
static bool do_movt(DisasContext *s, arg_MOVT_rzt *a,
void (*func)(TCGv_i64, TCGv_ptr, tcg_target_long))
{