Signed-off-by: Richard Henderson <[email protected]>
---
target/arm/tcg/helper-sme-defs.h | 1 +
target/arm/tcg/sme_helper.c | 6 ++++++
target/arm/tcg/translate-sme.c | 2 ++
target/arm/tcg/sme.decode | 1 +
4 files changed, 10 insertions(+)
diff --git a/target/arm/tcg/helper-sme-defs.h b/target/arm/tcg/helper-sme-defs.h
index f05b53f412..8a959447b2 100644
--- a/target/arm/tcg/helper-sme-defs.h
+++ b/target/arm/tcg/helper-sme-defs.h
@@ -410,3 +410,4 @@ DEF_HELPER_FLAGS_6(sme_ftmopa_hh, TCG_CALL_NO_RWG, void,
ptr, ptr, ptr, ptr, fps
DEF_HELPER_FLAGS_6(sme_ftmopa_ss, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr,
fpst, i32)
DEF_HELPER_FLAGS_6(sme_bftmopa_sh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr,
env, i32)
+DEF_HELPER_FLAGS_6(sme_ftmopa_sh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr,
env, i32)
diff --git a/target/arm/tcg/sme_helper.c b/target/arm/tcg/sme_helper.c
index 91447d9c0e..c2b7c23d6c 100644
--- a/target/arm/tcg/sme_helper.c
+++ b/target/arm/tcg/sme_helper.c
@@ -3020,6 +3020,12 @@ void HELPER(sme_fmop4a_sh)(void *vza, void *vzn, void
*vzm,
sme_mop4(vza, vzn, vzm, env, desc, sizeof(float32), inner_fmop4a_sh);
}
+void HELPER(sme_ftmopa_sh)(void *vza, void *vzn, void *vzm, void *vzk,
+ CPUArchState *env, uint32_t desc)
+{
+ sme_tmop_2way_sh(vza, vzn, vzm, vzk, env, desc, inner_fmop4a_sh);
+}
+
static void inner_fmop4s_sh(void *vd, void *vn, void *vm, void *vinfo)
{
float32 *d = vd;
diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c
index 8548bfd5c9..43d1726972 100644
--- a/target/arm/tcg/translate-sme.c
+++ b/target/arm/tcg/translate-sme.c
@@ -2165,3 +2165,5 @@ TRANS_FEAT(FTMOPA_ss, aa64_sme_tmop, do_tmop_fp,
TRANS_FEAT(BFTMOPA_sh, aa64_sme_tmop, do_tmop_fp,
a, MO_32, FPST_ENV, gen_helper_sme_bftmopa_sh)
+TRANS_FEAT(FTMOPA_sh, aa64_sme_tmop, do_tmop_fp,
+ a, MO_32, FPST_ENV, gen_helper_sme_ftmopa_sh)
diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode
index 49af8fd19e..5c453ea729 100644
--- a/target/arm/tcg/sme.decode
+++ b/target/arm/tcg/sme.decode
@@ -1147,3 +1147,4 @@ FTMOPA_hh 1000 0001 010 ..... 000 ... .... .. 100 .
@tmop_o1
FTMOPA_ss 1000 0000 010 ..... 000 ... .... .. 00 .. @tmop_o2
BFTMOPA_sh 1000 0001 010 ..... 000 ... .... .. 00 .. @tmop_o2
+FTMOPA_sh 1000 0001 011 ..... 000 ... .... .. 00 .. @tmop_o2
--
2.43.0