target/arm: Expand the descriptor for SME/SVE memory ops to i64
We have run out of room attempting to pack both the gvec descriptor and the mte descriptor into 32 bits. Here, change nothing except the parameter type, which affects all declarations, the function typedefs, and the type used with tcg expansion. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20250723165458.3509150-2-peter.maydell@linaro.org
This commit is contained in:
parent
9e601684dc
commit
0e171b427b
7 changed files with 747 additions and 746 deletions
|
|
@ -48,87 +48,87 @@ DEF_HELPER_FLAGS_3(sme2p1_movaz_zc_s, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
|
|||
DEF_HELPER_FLAGS_3(sme2p1_movaz_zc_d, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
|
||||
DEF_HELPER_FLAGS_3(sme2p1_movaz_zc_q, TCG_CALL_NO_RWG, void, ptr, ptr, i32)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_ld1b_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1b_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1b_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1b_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1b_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1b_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1b_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1b_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1h_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1s_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1d_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_ld1q_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_st1b_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1b_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1b_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1b_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1b_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1b_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1b_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1b_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1h_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1s_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1d_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_be_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_le_h, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_be_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_le_v, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_be_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_le_h_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_be_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
DEF_HELPER_FLAGS_5(sme_st1q_le_v_mte, TCG_CALL_NO_WG, void, env, ptr, ptr, tl, i64)
|
||||
|
||||
DEF_HELPER_FLAGS_5(sme_addha_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
|
||||
DEF_HELPER_FLAGS_5(sme_addva_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, i32)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -691,28 +691,28 @@ void sme_ld1_mte(CPUARMState *env, void *za, uint64_t *vg,
|
|||
|
||||
#define DO_LD(L, END, ESZ) \
|
||||
void HELPER(sme_ld1##L##END##_h)(CPUARMState *env, void *za, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sme_ld1(env, za, vg, addr, desc, GETPC(), ESZ, 0, false, \
|
||||
sve_ld1##L##L##END##_host, sve_ld1##L##L##END##_tlb, \
|
||||
clear_horizontal, copy_horizontal); \
|
||||
} \
|
||||
void HELPER(sme_ld1##L##END##_v)(CPUARMState *env, void *za, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sme_ld1(env, za, vg, addr, desc, GETPC(), ESZ, 0, true, \
|
||||
sme_ld1##L##END##_v_host, sme_ld1##L##END##_v_tlb, \
|
||||
clear_vertical_##L, copy_vertical_##L); \
|
||||
} \
|
||||
void HELPER(sme_ld1##L##END##_h_mte)(CPUARMState *env, void *za, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sme_ld1_mte(env, za, vg, addr, desc, GETPC(), ESZ, false, \
|
||||
sve_ld1##L##L##END##_host, sve_ld1##L##L##END##_tlb, \
|
||||
clear_horizontal, copy_horizontal); \
|
||||
} \
|
||||
void HELPER(sme_ld1##L##END##_v_mte)(CPUARMState *env, void *za, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sme_ld1_mte(env, za, vg, addr, desc, GETPC(), ESZ, true, \
|
||||
sme_ld1##L##END##_v_host, sme_ld1##L##END##_v_tlb, \
|
||||
|
|
@ -876,25 +876,25 @@ void sme_st1_mte(CPUARMState *env, void *za, uint64_t *vg, target_ulong addr,
|
|||
|
||||
#define DO_ST(L, END, ESZ) \
|
||||
void HELPER(sme_st1##L##END##_h)(CPUARMState *env, void *za, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sme_st1(env, za, vg, addr, desc, GETPC(), ESZ, 0, false, \
|
||||
sve_st1##L##L##END##_host, sve_st1##L##L##END##_tlb); \
|
||||
} \
|
||||
void HELPER(sme_st1##L##END##_v)(CPUARMState *env, void *za, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sme_st1(env, za, vg, addr, desc, GETPC(), ESZ, 0, true, \
|
||||
sme_st1##L##END##_v_host, sme_st1##L##END##_v_tlb); \
|
||||
} \
|
||||
void HELPER(sme_st1##L##END##_h_mte)(CPUARMState *env, void *za, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sme_st1_mte(env, za, vg, addr, desc, GETPC(), ESZ, false, \
|
||||
sve_st1##L##L##END##_host, sve_st1##L##L##END##_tlb); \
|
||||
} \
|
||||
void HELPER(sme_st1##L##END##_v_mte)(CPUARMState *env, void *za, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sme_st1_mte(env, za, vg, addr, desc, GETPC(), ESZ, true, \
|
||||
sme_st1##L##END##_v_host, sme_st1##L##END##_v_tlb); \
|
||||
|
|
|
|||
|
|
@ -6384,13 +6384,13 @@ void sve_ldN_r_mte(CPUARMState *env, uint64_t *vg, target_ulong addr,
|
|||
|
||||
#define DO_LD1_1(NAME, ESZ) \
|
||||
void HELPER(sve_##NAME##_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r(env, vg, addr, desc, GETPC(), ESZ, MO_8, 1, 0, \
|
||||
sve_##NAME##_host, sve_##NAME##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_##NAME##_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r_mte(env, vg, addr, desc, GETPC(), ESZ, MO_8, 1, \
|
||||
sve_##NAME##_host, sve_##NAME##_tlb); \
|
||||
|
|
@ -6398,25 +6398,25 @@ void HELPER(sve_##NAME##_r_mte)(CPUARMState *env, void *vg, \
|
|||
|
||||
#define DO_LD1_2(NAME, ESZ, MSZ) \
|
||||
void HELPER(sve_##NAME##_le_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r(env, vg, addr, desc, GETPC(), ESZ, MSZ, 1, 0, \
|
||||
sve_##NAME##_le_host, sve_##NAME##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_##NAME##_be_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r(env, vg, addr, desc, GETPC(), ESZ, MSZ, 1, 0, \
|
||||
sve_##NAME##_be_host, sve_##NAME##_be_tlb); \
|
||||
} \
|
||||
void HELPER(sve_##NAME##_le_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r_mte(env, vg, addr, desc, GETPC(), ESZ, MSZ, 1, \
|
||||
sve_##NAME##_le_host, sve_##NAME##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_##NAME##_be_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r_mte(env, vg, addr, desc, GETPC(), ESZ, MSZ, 1, \
|
||||
sve_##NAME##_be_host, sve_##NAME##_be_tlb); \
|
||||
|
|
@ -6450,13 +6450,13 @@ DO_LD1_2(ld1dqu, MO_64, MO_128)
|
|||
|
||||
#define DO_LDN_1(N) \
|
||||
void HELPER(sve_ld##N##bb_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r(env, vg, addr, desc, GETPC(), MO_8, MO_8, N, 0, \
|
||||
sve_ld1bb_host, sve_ld1bb_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ld##N##bb_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r_mte(env, vg, addr, desc, GETPC(), MO_8, MO_8, N, \
|
||||
sve_ld1bb_host, sve_ld1bb_tlb); \
|
||||
|
|
@ -6464,25 +6464,25 @@ void HELPER(sve_ld##N##bb_r_mte)(CPUARMState *env, void *vg, \
|
|||
|
||||
#define DO_LDN_2(N, SUFF, ESZ) \
|
||||
void HELPER(sve_ld##N##SUFF##_le_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r(env, vg, addr, desc, GETPC(), ESZ, ESZ, N, 0, \
|
||||
sve_ld1##SUFF##_le_host, sve_ld1##SUFF##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ld##N##SUFF##_be_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r(env, vg, addr, desc, GETPC(), ESZ, ESZ, N, 0, \
|
||||
sve_ld1##SUFF##_be_host, sve_ld1##SUFF##_be_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ld##N##SUFF##_le_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r_mte(env, vg, addr, desc, GETPC(), ESZ, ESZ, N, \
|
||||
sve_ld1##SUFF##_le_host, sve_ld1##SUFF##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ld##N##SUFF##_be_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldN_r_mte(env, vg, addr, desc, GETPC(), ESZ, ESZ, N, \
|
||||
sve_ld1##SUFF##_be_host, sve_ld1##SUFF##_be_tlb); \
|
||||
|
|
@ -6750,25 +6750,25 @@ void sve_ldnfff1_r_mte(CPUARMState *env, void *vg, target_ulong addr,
|
|||
|
||||
#define DO_LDFF1_LDNF1_1(PART, ESZ) \
|
||||
void HELPER(sve_ldff1##PART##_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r(env, vg, addr, desc, GETPC(), 0, ESZ, MO_8, FAULT_FIRST, \
|
||||
sve_ld1##PART##_host, sve_ld1##PART##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldnf1##PART##_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r(env, vg, addr, desc, GETPC(), 0, ESZ, MO_8, FAULT_NO, \
|
||||
sve_ld1##PART##_host, sve_ld1##PART##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldff1##PART##_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r_mte(env, vg, addr, desc, GETPC(), ESZ, MO_8, FAULT_FIRST, \
|
||||
sve_ld1##PART##_host, sve_ld1##PART##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldnf1##PART##_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r_mte(env, vg, addr, desc, GETPC(), ESZ, MO_8, FAULT_NO, \
|
||||
sve_ld1##PART##_host, sve_ld1##PART##_tlb); \
|
||||
|
|
@ -6776,49 +6776,49 @@ void HELPER(sve_ldnf1##PART##_r_mte)(CPUARMState *env, void *vg, \
|
|||
|
||||
#define DO_LDFF1_LDNF1_2(PART, ESZ, MSZ) \
|
||||
void HELPER(sve_ldff1##PART##_le_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r(env, vg, addr, desc, GETPC(), 0, ESZ, MSZ, FAULT_FIRST, \
|
||||
sve_ld1##PART##_le_host, sve_ld1##PART##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldnf1##PART##_le_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r(env, vg, addr, desc, GETPC(), 0, ESZ, MSZ, FAULT_NO, \
|
||||
sve_ld1##PART##_le_host, sve_ld1##PART##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldff1##PART##_be_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r(env, vg, addr, desc, GETPC(), 0, ESZ, MSZ, FAULT_FIRST, \
|
||||
sve_ld1##PART##_be_host, sve_ld1##PART##_be_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldnf1##PART##_be_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r(env, vg, addr, desc, GETPC(), 0, ESZ, MSZ, FAULT_NO, \
|
||||
sve_ld1##PART##_be_host, sve_ld1##PART##_be_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldff1##PART##_le_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r_mte(env, vg, addr, desc, GETPC(), ESZ, MSZ, FAULT_FIRST, \
|
||||
sve_ld1##PART##_le_host, sve_ld1##PART##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldnf1##PART##_le_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r_mte(env, vg, addr, desc, GETPC(), ESZ, MSZ, FAULT_NO, \
|
||||
sve_ld1##PART##_le_host, sve_ld1##PART##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldff1##PART##_be_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r_mte(env, vg, addr, desc, GETPC(), ESZ, MSZ, FAULT_FIRST, \
|
||||
sve_ld1##PART##_be_host, sve_ld1##PART##_be_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldnf1##PART##_be_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldnfff1_r_mte(env, vg, addr, desc, GETPC(), ESZ, MSZ, FAULT_NO, \
|
||||
sve_ld1##PART##_be_host, sve_ld1##PART##_be_tlb); \
|
||||
|
|
@ -7007,13 +7007,13 @@ void sve_stN_r_mte(CPUARMState *env, uint64_t *vg, target_ulong addr,
|
|||
|
||||
#define DO_STN_1(N, NAME, ESZ) \
|
||||
void HELPER(sve_st##N##NAME##_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_stN_r(env, vg, addr, desc, GETPC(), ESZ, MO_8, N, 0, \
|
||||
sve_st1##NAME##_host, sve_st1##NAME##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_st##N##NAME##_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_stN_r_mte(env, vg, addr, desc, GETPC(), ESZ, MO_8, N, \
|
||||
sve_st1##NAME##_host, sve_st1##NAME##_tlb); \
|
||||
|
|
@ -7021,25 +7021,25 @@ void HELPER(sve_st##N##NAME##_r_mte)(CPUARMState *env, void *vg, \
|
|||
|
||||
#define DO_STN_2(N, NAME, ESZ, MSZ) \
|
||||
void HELPER(sve_st##N##NAME##_le_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_stN_r(env, vg, addr, desc, GETPC(), ESZ, MSZ, N, 0, \
|
||||
sve_st1##NAME##_le_host, sve_st1##NAME##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_st##N##NAME##_be_r)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_stN_r(env, vg, addr, desc, GETPC(), ESZ, MSZ, N, 0, \
|
||||
sve_st1##NAME##_be_host, sve_st1##NAME##_be_tlb); \
|
||||
} \
|
||||
void HELPER(sve_st##N##NAME##_le_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_stN_r_mte(env, vg, addr, desc, GETPC(), ESZ, MSZ, N, \
|
||||
sve_st1##NAME##_le_host, sve_st1##NAME##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve_st##N##NAME##_be_r_mte)(CPUARMState *env, void *vg, \
|
||||
target_ulong addr, uint32_t desc) \
|
||||
target_ulong addr, uint64_t desc) \
|
||||
{ \
|
||||
sve_stN_r_mte(env, vg, addr, desc, GETPC(), ESZ, MSZ, N, \
|
||||
sve_st1##NAME##_be_host, sve_st1##NAME##_be_tlb); \
|
||||
|
|
@ -7204,13 +7204,13 @@ void sve_ld1_z_mte(CPUARMState *env, void *vd, uint64_t *vg, void *vm,
|
|||
|
||||
#define DO_LD1_ZPZ_S(MEM, OFS, MSZ) \
|
||||
void HELPER(sve_ld##MEM##_##OFS)(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_ld1_z(env, vd, vg, vm, base, desc, GETPC(), 0, 4, 1 << MSZ, \
|
||||
off_##OFS##_s, sve_ld1##MEM##_host, sve_ld1##MEM##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ld##MEM##_##OFS##_mte)(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_ld1_z_mte(env, vd, vg, vm, base, desc, GETPC(), 4, 1 << MSZ, \
|
||||
off_##OFS##_s, sve_ld1##MEM##_host, sve_ld1##MEM##_tlb); \
|
||||
|
|
@ -7218,13 +7218,13 @@ void HELPER(sve_ld##MEM##_##OFS##_mte)(CPUARMState *env, void *vd, void *vg, \
|
|||
|
||||
#define DO_LD1_ZPZ_D(MEM, OFS, MSZ) \
|
||||
void HELPER(sve_ld##MEM##_##OFS)(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_ld1_z(env, vd, vg, vm, base, desc, GETPC(), 0, 8, 1 << MSZ, \
|
||||
off_##OFS##_d, sve_ld1##MEM##_host, sve_ld1##MEM##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ld##MEM##_##OFS##_mte)(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_ld1_z_mte(env, vd, vg, vm, base, desc, GETPC(), 8, 1 << MSZ, \
|
||||
off_##OFS##_d, sve_ld1##MEM##_host, sve_ld1##MEM##_tlb); \
|
||||
|
|
@ -7418,14 +7418,14 @@ void sve_ldff1_z_mte(CPUARMState *env, void *vd, uint64_t *vg, void *vm,
|
|||
#define DO_LDFF1_ZPZ_S(MEM, OFS, MSZ) \
|
||||
void HELPER(sve_ldff##MEM##_##OFS) \
|
||||
(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldff1_z(env, vd, vg, vm, base, desc, GETPC(), 0, MO_32, MSZ, \
|
||||
off_##OFS##_s, sve_ld1##MEM##_host, sve_ld1##MEM##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldff##MEM##_##OFS##_mte) \
|
||||
(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldff1_z_mte(env, vd, vg, vm, base, desc, GETPC(), MO_32, MSZ, \
|
||||
off_##OFS##_s, sve_ld1##MEM##_host, sve_ld1##MEM##_tlb); \
|
||||
|
|
@ -7434,14 +7434,14 @@ void HELPER(sve_ldff##MEM##_##OFS##_mte) \
|
|||
#define DO_LDFF1_ZPZ_D(MEM, OFS, MSZ) \
|
||||
void HELPER(sve_ldff##MEM##_##OFS) \
|
||||
(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldff1_z(env, vd, vg, vm, base, desc, GETPC(), 0, MO_64, MSZ, \
|
||||
off_##OFS##_d, sve_ld1##MEM##_host, sve_ld1##MEM##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_ldff##MEM##_##OFS##_mte) \
|
||||
(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_ldff1_z_mte(env, vd, vg, vm, base, desc, GETPC(), MO_64, MSZ, \
|
||||
off_##OFS##_d, sve_ld1##MEM##_host, sve_ld1##MEM##_tlb); \
|
||||
|
|
@ -7621,13 +7621,13 @@ void sve_st1_z_mte(CPUARMState *env, void *vd, uint64_t *vg, void *vm,
|
|||
|
||||
#define DO_ST1_ZPZ_S(MEM, OFS, MSZ) \
|
||||
void HELPER(sve_st##MEM##_##OFS)(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_st1_z(env, vd, vg, vm, base, desc, GETPC(), 0, 4, 1 << MSZ, \
|
||||
off_##OFS##_s, sve_st1##MEM##_host, sve_st1##MEM##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_st##MEM##_##OFS##_mte)(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_st1_z_mte(env, vd, vg, vm, base, desc, GETPC(), 4, 1 << MSZ, \
|
||||
off_##OFS##_s, sve_st1##MEM##_host, sve_st1##MEM##_tlb); \
|
||||
|
|
@ -7635,13 +7635,13 @@ void HELPER(sve_st##MEM##_##OFS##_mte)(CPUARMState *env, void *vd, void *vg, \
|
|||
|
||||
#define DO_ST1_ZPZ_D(MEM, OFS, MSZ) \
|
||||
void HELPER(sve_st##MEM##_##OFS)(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_st1_z(env, vd, vg, vm, base, desc, GETPC(), 0, 8, 1 << MSZ, \
|
||||
off_##OFS##_d, sve_st1##MEM##_host, sve_st1##MEM##_tlb); \
|
||||
} \
|
||||
void HELPER(sve_st##MEM##_##OFS##_mte)(CPUARMState *env, void *vd, void *vg, \
|
||||
void *vm, target_ulong base, uint32_t desc) \
|
||||
void *vm, target_ulong base, uint64_t desc) \
|
||||
{ \
|
||||
sve_st1_z_mte(env, vd, vg, vm, base, desc, GETPC(), 8, 1 << MSZ, \
|
||||
off_##OFS##_d, sve_st1##MEM##_host, sve_st1##MEM##_tlb); \
|
||||
|
|
@ -7995,7 +7995,7 @@ void sve2p1_ld1_c(CPUARMState *env, ARMVectorReg *zd, const vaddr addr,
|
|||
}
|
||||
|
||||
void HELPER(sve2p1_ld1bb_c)(CPUARMState *env, void *vd, target_ulong addr,
|
||||
uint32_t png, uint32_t desc)
|
||||
uint32_t png, uint64_t desc)
|
||||
{
|
||||
sve2p1_ld1_c(env, vd, addr, png, desc, GETPC(), MO_8,
|
||||
sve_ld1bb_host, sve_ld1bb_tlb);
|
||||
|
|
@ -8004,14 +8004,14 @@ void HELPER(sve2p1_ld1bb_c)(CPUARMState *env, void *vd, target_ulong addr,
|
|||
#define DO_LD1_2(NAME, ESZ) \
|
||||
void HELPER(sve2p1_##NAME##_le_c)(CPUARMState *env, void *vd, \
|
||||
target_ulong addr, uint32_t png, \
|
||||
uint32_t desc) \
|
||||
uint64_t desc) \
|
||||
{ \
|
||||
sve2p1_ld1_c(env, vd, addr, png, desc, GETPC(), ESZ, \
|
||||
sve_##NAME##_le_host, sve_##NAME##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve2p1_##NAME##_be_c)(CPUARMState *env, void *vd, \
|
||||
target_ulong addr, uint32_t png, \
|
||||
uint32_t desc) \
|
||||
uint64_t desc) \
|
||||
{ \
|
||||
sve2p1_ld1_c(env, vd, addr, png, desc, GETPC(), ESZ, \
|
||||
sve_##NAME##_be_host, sve_##NAME##_be_tlb); \
|
||||
|
|
@ -8154,7 +8154,7 @@ void sve2p1_st1_c(CPUARMState *env, ARMVectorReg *zd, const vaddr addr,
|
|||
}
|
||||
|
||||
void HELPER(sve2p1_st1bb_c)(CPUARMState *env, void *vd, target_ulong addr,
|
||||
uint32_t png, uint32_t desc)
|
||||
uint32_t png, uint64_t desc)
|
||||
{
|
||||
sve2p1_st1_c(env, vd, addr, png, desc, GETPC(), MO_8,
|
||||
sve_st1bb_host, sve_st1bb_tlb);
|
||||
|
|
@ -8163,14 +8163,14 @@ void HELPER(sve2p1_st1bb_c)(CPUARMState *env, void *vd, target_ulong addr,
|
|||
#define DO_ST1_2(NAME, ESZ) \
|
||||
void HELPER(sve2p1_##NAME##_le_c)(CPUARMState *env, void *vd, \
|
||||
target_ulong addr, uint32_t png, \
|
||||
uint32_t desc) \
|
||||
uint64_t desc) \
|
||||
{ \
|
||||
sve2p1_st1_c(env, vd, addr, png, desc, GETPC(), ESZ, \
|
||||
sve_##NAME##_le_host, sve_##NAME##_le_tlb); \
|
||||
} \
|
||||
void HELPER(sve2p1_##NAME##_be_c)(CPUARMState *env, void *vd, \
|
||||
target_ulong addr, uint32_t png, \
|
||||
uint32_t desc) \
|
||||
uint64_t desc) \
|
||||
{ \
|
||||
sve2p1_st1_c(env, vd, addr, png, desc, GETPC(), ESZ, \
|
||||
sve_##NAME##_be_host, sve_##NAME##_be_tlb); \
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ bool logic_imm_decode_wmask(uint64_t *result, unsigned int immn,
|
|||
bool sve_access_check(DisasContext *s);
|
||||
bool sme_enabled_check(DisasContext *s);
|
||||
bool sme_enabled_check_with_svcr(DisasContext *s, unsigned);
|
||||
uint32_t make_svemte_desc(DisasContext *s, unsigned vsz, uint32_t nregs,
|
||||
uint64_t make_svemte_desc(DisasContext *s, unsigned vsz, uint32_t nregs,
|
||||
uint32_t msz, bool is_write, uint32_t data);
|
||||
|
||||
/* This function corresponds to CheckStreamingSVEEnabled. */
|
||||
|
|
|
|||
|
|
@ -387,7 +387,7 @@ TRANS_FEAT(MOVT_ztr, aa64_sme2, do_movt, a, tcg_gen_st_i64)
|
|||
|
||||
static bool trans_LDST1(DisasContext *s, arg_LDST1 *a)
|
||||
{
|
||||
typedef void GenLdSt1(TCGv_env, TCGv_ptr, TCGv_ptr, TCGv, TCGv_i32);
|
||||
typedef void GenLdSt1(TCGv_env, TCGv_ptr, TCGv_ptr, TCGv, TCGv_i64);
|
||||
|
||||
/*
|
||||
* Indexed by [esz][be][v][mte][st], which is (except for load/store)
|
||||
|
|
@ -415,7 +415,7 @@ static bool trans_LDST1(DisasContext *s, arg_LDST1 *a)
|
|||
|
||||
TCGv_ptr t_za, t_pg;
|
||||
TCGv_i64 addr;
|
||||
uint32_t desc;
|
||||
uint64_t desc;
|
||||
bool be = s->be_data == MO_BE;
|
||||
bool mte = s->mte_active[0];
|
||||
|
||||
|
|
@ -440,7 +440,7 @@ static bool trans_LDST1(DisasContext *s, arg_LDST1 *a)
|
|||
desc = make_svemte_desc(s, streaming_vec_reg_size(s), 1, a->esz, a->st, 0);
|
||||
|
||||
fns[a->esz][be][a->v][mte][a->st](tcg_env, t_za, t_pg, addr,
|
||||
tcg_constant_i32(desc));
|
||||
tcg_constant_i64(desc));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@ typedef void gen_helper_gvec_flags_3(TCGv_i32, TCGv_ptr, TCGv_ptr,
|
|||
typedef void gen_helper_gvec_flags_4(TCGv_i32, TCGv_ptr, TCGv_ptr,
|
||||
TCGv_ptr, TCGv_ptr, TCGv_i32);
|
||||
|
||||
typedef void gen_helper_gvec_mem(TCGv_env, TCGv_ptr, TCGv_i64, TCGv_i32);
|
||||
typedef void gen_helper_gvec_mem(TCGv_env, TCGv_ptr, TCGv_i64, TCGv_i64);
|
||||
typedef void gen_helper_gvec_mem_scatter(TCGv_env, TCGv_ptr, TCGv_ptr,
|
||||
TCGv_ptr, TCGv_i64, TCGv_i32);
|
||||
TCGv_ptr, TCGv_i64, TCGv_i64);
|
||||
|
||||
/*
|
||||
* Helpers for extracting complex instruction fields.
|
||||
|
|
@ -4883,11 +4883,11 @@ static const uint8_t dtype_esz[19] = {
|
|||
4, 4, 4,
|
||||
};
|
||||
|
||||
uint32_t make_svemte_desc(DisasContext *s, unsigned vsz, uint32_t nregs,
|
||||
uint64_t make_svemte_desc(DisasContext *s, unsigned vsz, uint32_t nregs,
|
||||
uint32_t msz, bool is_write, uint32_t data)
|
||||
{
|
||||
uint32_t sizem1;
|
||||
uint32_t desc = 0;
|
||||
uint64_t desc = 0;
|
||||
|
||||
/* Assert all of the data fits, with or without MTE enabled. */
|
||||
assert(nregs >= 1 && nregs <= 4);
|
||||
|
|
@ -4911,7 +4911,7 @@ static void do_mem_zpa(DisasContext *s, int zt, int pg, TCGv_i64 addr,
|
|||
gen_helper_gvec_mem *fn)
|
||||
{
|
||||
TCGv_ptr t_pg;
|
||||
uint32_t desc;
|
||||
uint64_t desc;
|
||||
|
||||
if (!s->mte_active[0]) {
|
||||
addr = clean_data_tbi(s, addr);
|
||||
|
|
@ -4927,7 +4927,7 @@ static void do_mem_zpa(DisasContext *s, int zt, int pg, TCGv_i64 addr,
|
|||
t_pg = tcg_temp_new_ptr();
|
||||
|
||||
tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, pg));
|
||||
fn(tcg_env, t_pg, addr, tcg_constant_i32(desc));
|
||||
fn(tcg_env, t_pg, addr, tcg_constant_i64(desc));
|
||||
}
|
||||
|
||||
/* Indexed by [mte][be][dtype][nreg] */
|
||||
|
|
@ -5379,7 +5379,7 @@ static void do_ldrq(DisasContext *s, int zt, int pg, TCGv_i64 addr, int dtype)
|
|||
unsigned vsz = vec_full_reg_size(s);
|
||||
TCGv_ptr t_pg;
|
||||
int poff;
|
||||
uint32_t desc;
|
||||
uint64_t desc;
|
||||
|
||||
/* Load the first quadword using the normal predicated load helpers. */
|
||||
if (!s->mte_active[0]) {
|
||||
|
|
@ -5410,7 +5410,7 @@ static void do_ldrq(DisasContext *s, int zt, int pg, TCGv_i64 addr, int dtype)
|
|||
gen_helper_gvec_mem *fn
|
||||
= ldr_fns[s->mte_active[0]][s->be_data == MO_BE][dtype][0];
|
||||
desc = make_svemte_desc(s, 16, 1, dtype_msz(dtype), false, zt);
|
||||
fn(tcg_env, t_pg, addr, tcg_constant_i32(desc));
|
||||
fn(tcg_env, t_pg, addr, tcg_constant_i64(desc));
|
||||
|
||||
/* Replicate that first quadword. */
|
||||
if (vsz > 16) {
|
||||
|
|
@ -5453,7 +5453,7 @@ static void do_ldro(DisasContext *s, int zt, int pg, TCGv_i64 addr, int dtype)
|
|||
unsigned vsz_r32;
|
||||
TCGv_ptr t_pg;
|
||||
int poff, doff;
|
||||
uint32_t desc;
|
||||
uint64_t desc;
|
||||
|
||||
if (vsz < 32) {
|
||||
/*
|
||||
|
|
@ -5494,7 +5494,7 @@ static void do_ldro(DisasContext *s, int zt, int pg, TCGv_i64 addr, int dtype)
|
|||
gen_helper_gvec_mem *fn
|
||||
= ldr_fns[s->mte_active[0]][s->be_data == MO_BE][dtype][0];
|
||||
desc = make_svemte_desc(s, 32, 1, dtype_msz(dtype), false, zt);
|
||||
fn(tcg_env, t_pg, addr, tcg_constant_i32(desc));
|
||||
fn(tcg_env, t_pg, addr, tcg_constant_i64(desc));
|
||||
|
||||
/*
|
||||
* Replicate that first octaword.
|
||||
|
|
@ -5828,14 +5828,14 @@ static void do_mem_zpz(DisasContext *s, int zt, int pg, int zm,
|
|||
TCGv_ptr t_zm = tcg_temp_new_ptr();
|
||||
TCGv_ptr t_pg = tcg_temp_new_ptr();
|
||||
TCGv_ptr t_zt = tcg_temp_new_ptr();
|
||||
uint32_t desc;
|
||||
uint64_t desc;
|
||||
|
||||
tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, pg));
|
||||
tcg_gen_addi_ptr(t_zm, tcg_env, vec_full_reg_offset(s, zm));
|
||||
tcg_gen_addi_ptr(t_zt, tcg_env, vec_full_reg_offset(s, zt));
|
||||
|
||||
desc = make_svemte_desc(s, vec_full_reg_size(s), 1, msz, is_write, scale);
|
||||
fn(tcg_env, t_zt, t_pg, t_zm, scalar, tcg_constant_i32(desc));
|
||||
fn(tcg_env, t_zt, t_pg, t_zm, scalar, tcg_constant_i64(desc));
|
||||
}
|
||||
|
||||
/* Indexed by [mte][be][ff][xs][u][msz]. */
|
||||
|
|
@ -8079,7 +8079,7 @@ static bool gen_ldst_c(DisasContext *s, TCGv_i64 addr, int zd, int png,
|
|||
MemOp esz, bool is_write, int n, bool strided)
|
||||
{
|
||||
typedef void ldst_c_fn(TCGv_env, TCGv_ptr, TCGv_i64,
|
||||
TCGv_i32, TCGv_i32);
|
||||
TCGv_i32, TCGv_i64);
|
||||
static ldst_c_fn * const f_ldst[2][2][4] = {
|
||||
{ { gen_helper_sve2p1_ld1bb_c,
|
||||
gen_helper_sve2p1_ld1hh_le_c,
|
||||
|
|
@ -8100,9 +8100,10 @@ static bool gen_ldst_c(DisasContext *s, TCGv_i64 addr, int zd, int png,
|
|||
gen_helper_sve2p1_st1dd_be_c, } }
|
||||
};
|
||||
|
||||
TCGv_i32 t_png, t_desc;
|
||||
TCGv_i32 t_png;
|
||||
TCGv_i64 t_desc;
|
||||
TCGv_ptr t_zd;
|
||||
uint32_t desc, lg2_rstride = 0;
|
||||
uint64_t desc, lg2_rstride = 0;
|
||||
bool be = s->be_data == MO_BE;
|
||||
|
||||
assert(n == 2 || n == 4);
|
||||
|
|
@ -8132,7 +8133,7 @@ static bool gen_ldst_c(DisasContext *s, TCGv_i64 addr, int zd, int png,
|
|||
desc = n == 2 ? 0 : 1;
|
||||
desc = desc | (lg2_rstride << 1);
|
||||
desc = make_svemte_desc(s, vec_full_reg_size(s), 1, esz, is_write, desc);
|
||||
t_desc = tcg_constant_i32(desc);
|
||||
t_desc = tcg_constant_i64(desc);
|
||||
|
||||
t_png = tcg_temp_new_i32();
|
||||
tcg_gen_ld16u_i32(t_png, tcg_env,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue