@samitouri / QOSamiQemu / commits / 48d9d26fbc

target/arm: Implement USMOP4[AS]

Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20260702204314.79224-15-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Richard Henderson committed Jul 2, 2026 at 13:43 UTC 48d9d26fbce590cf33c364d57041d98feac87a81
4 files changed +18
target/arm/tcg/helper-sme-defs.h
+5
@@ -399,3 +399,8 @@ DEF_HELPER_FLAGS_4(sme_umop4a_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
399 DEF_HELPER_FLAGS_4(sme_umop4s_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
400 DEF_HELPER_FLAGS_4(sme_umop4a_dh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
401 DEF_HELPER_FLAGS_4(sme_umop4s_dh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
402 +
403 +DEF_HELPER_FLAGS_4(sme_usmop4a_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
404 +DEF_HELPER_FLAGS_4(sme_usmop4s_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
405 +DEF_HELPER_FLAGS_4(sme_usmop4a_dh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
406 +DEF_HELPER_FLAGS_4(sme_usmop4s_dh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32)
target/arm/tcg/sme.decode
+3
@@ -1128,3 +1128,6 @@ SUMOP4_dh 1010 0000 111. ...0 0000 00.. ..0. 1... @mop4_o3
1128
1129 UMOP4_sb 1000 0001 001. ...0 1000 00.. ..0. 00.. @mop4_o2
1130 UMOP4_dh 1010 0001 111. ...0 0000 00.. ..0. 1... @mop4_o3
1131 +
1132 +USMOP4_sb 1000 0001 000. ...0 1000 00.. ..0. 00.. @mop4_o2
1133 +USMOP4_dh 1010 0001 110. ...0 0000 00.. ..0. 1... @mop4_o3
target/arm/tcg/sme_helper.c
+5
@@ -2985,4 +2985,9 @@ IMOP4_4WAY(umop4s_sb, -, int32_t, uint8_t, uint8_t)
2985 IMOP4_4WAY(umop4a_dh, +, int64_t, uint16_t, uint16_t)
2986 IMOP4_4WAY(umop4s_dh, -, int64_t, uint16_t, uint16_t)
2987
2988 +IMOP4_4WAY(usmop4a_sb, +, int32_t, uint8_t, int8_t)
2989 +IMOP4_4WAY(usmop4s_sb, -, int32_t, uint8_t, int8_t)
2990 +IMOP4_4WAY(usmop4a_dh, +, int64_t, uint16_t, int16_t)
2991 +IMOP4_4WAY(usmop4s_dh, -, int64_t, uint16_t, int16_t)
2992 +
2993 #undef IMOP4_4WAY
target/arm/tcg/translate-sme.c
+5
@@ -2127,3 +2127,8 @@ TRANS_FEAT(UMOP4_sb, aa64_sme_mop4, do_mop4_int, a, MO_32,
2127 a->s ? gen_helper_sme_umop4s_sb : gen_helper_sme_umop4a_sb)
2128 TRANS_FEAT(UMOP4_dh, aa64_sme_mop4_i16i64, do_mop4_int, a, MO_64,
2129 a->s ? gen_helper_sme_umop4s_dh : gen_helper_sme_umop4a_dh)
2130 +
2131 +TRANS_FEAT(USMOP4_sb, aa64_sme_mop4, do_mop4_int, a, MO_32,
2132 + a->s ? gen_helper_sme_usmop4s_sb : gen_helper_sme_usmop4a_sb)
2133 +TRANS_FEAT(USMOP4_dh, aa64_sme_mop4_i16i64, do_mop4_int, a, MO_64,
2134 + a->s ? gen_helper_sme_usmop4s_dh : gen_helper_sme_usmop4a_dh)