target/arm: Mark string/histo/crypto as non-streaming
Mark these as non-streaming instructions, which should trap if full a64 support is not enabled in streaming mode. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220708151540.18136-11-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
d79f3d5f2f
commit
46feb36151
|
@ -59,7 +59,6 @@ FAIL 0001 1110 0111 1110 0000 00-- ---- ---- # FJCVTZS
|
|||
# --11 1100 --1- ---- ---- ---- ---- --10 # Load/store FP register (register offset)
|
||||
# --11 1101 ---- ---- ---- ---- ---- ---- # Load/store FP register (scaled imm)
|
||||
|
||||
FAIL 0100 0101 --1- ---- 1--- ---- ---- ---- # SVE2 string/histo/crypto instructions
|
||||
FAIL 1000 010- -00- ---- 10-- ---- ---- ---- # SVE2 32-bit gather NT load (vector+scalar)
|
||||
FAIL 1000 010- -00- ---- 111- ---- ---- ---- # SVE 32-bit gather prefetch (vector+imm)
|
||||
FAIL 1000 0100 0-1- ---- 0--- ---- ---- ---- # SVE 32-bit gather prefetch (scalar+vector)
|
||||
|
|
|
@ -7110,21 +7110,21 @@ DO_SVE2_ZZZ_NARROW(RSUBHNT, rsubhnt)
|
|||
static gen_helper_gvec_flags_4 * const match_fns[4] = {
|
||||
gen_helper_sve2_match_ppzz_b, gen_helper_sve2_match_ppzz_h, NULL, NULL
|
||||
};
|
||||
TRANS_FEAT(MATCH, aa64_sve2, do_ppzz_flags, a, match_fns[a->esz])
|
||||
TRANS_FEAT_NONSTREAMING(MATCH, aa64_sve2, do_ppzz_flags, a, match_fns[a->esz])
|
||||
|
||||
static gen_helper_gvec_flags_4 * const nmatch_fns[4] = {
|
||||
gen_helper_sve2_nmatch_ppzz_b, gen_helper_sve2_nmatch_ppzz_h, NULL, NULL
|
||||
};
|
||||
TRANS_FEAT(NMATCH, aa64_sve2, do_ppzz_flags, a, nmatch_fns[a->esz])
|
||||
TRANS_FEAT_NONSTREAMING(NMATCH, aa64_sve2, do_ppzz_flags, a, nmatch_fns[a->esz])
|
||||
|
||||
static gen_helper_gvec_4 * const histcnt_fns[4] = {
|
||||
NULL, NULL, gen_helper_sve2_histcnt_s, gen_helper_sve2_histcnt_d
|
||||
};
|
||||
TRANS_FEAT(HISTCNT, aa64_sve2, gen_gvec_ool_arg_zpzz,
|
||||
histcnt_fns[a->esz], a, 0)
|
||||
TRANS_FEAT_NONSTREAMING(HISTCNT, aa64_sve2, gen_gvec_ool_arg_zpzz,
|
||||
histcnt_fns[a->esz], a, 0)
|
||||
|
||||
TRANS_FEAT(HISTSEG, aa64_sve2, gen_gvec_ool_arg_zzz,
|
||||
a->esz == 0 ? gen_helper_sve2_histseg : NULL, a, 0)
|
||||
TRANS_FEAT_NONSTREAMING(HISTSEG, aa64_sve2, gen_gvec_ool_arg_zzz,
|
||||
a->esz == 0 ? gen_helper_sve2_histseg : NULL, a, 0)
|
||||
|
||||
DO_ZPZZ_FP(FADDP, aa64_sve2, sve2_faddp_zpzz)
|
||||
DO_ZPZZ_FP(FMAXNMP, aa64_sve2, sve2_fmaxnmp_zpzz)
|
||||
|
@ -7238,20 +7238,21 @@ TRANS_FEAT(SQRDCMLAH_zzzz, aa64_sve2, gen_gvec_ool_zzzz,
|
|||
TRANS_FEAT(USDOT_zzzz, aa64_sve_i8mm, gen_gvec_ool_arg_zzzz,
|
||||
a->esz == 2 ? gen_helper_gvec_usdot_b : NULL, a, 0)
|
||||
|
||||
TRANS_FEAT(AESMC, aa64_sve2_aes, gen_gvec_ool_zz,
|
||||
gen_helper_crypto_aesmc, a->rd, a->rd, a->decrypt)
|
||||
TRANS_FEAT_NONSTREAMING(AESMC, aa64_sve2_aes, gen_gvec_ool_zz,
|
||||
gen_helper_crypto_aesmc, a->rd, a->rd, a->decrypt)
|
||||
|
||||
TRANS_FEAT(AESE, aa64_sve2_aes, gen_gvec_ool_arg_zzz,
|
||||
gen_helper_crypto_aese, a, false)
|
||||
TRANS_FEAT(AESD, aa64_sve2_aes, gen_gvec_ool_arg_zzz,
|
||||
gen_helper_crypto_aese, a, true)
|
||||
TRANS_FEAT_NONSTREAMING(AESE, aa64_sve2_aes, gen_gvec_ool_arg_zzz,
|
||||
gen_helper_crypto_aese, a, false)
|
||||
TRANS_FEAT_NONSTREAMING(AESD, aa64_sve2_aes, gen_gvec_ool_arg_zzz,
|
||||
gen_helper_crypto_aese, a, true)
|
||||
|
||||
TRANS_FEAT(SM4E, aa64_sve2_sm4, gen_gvec_ool_arg_zzz,
|
||||
gen_helper_crypto_sm4e, a, 0)
|
||||
TRANS_FEAT(SM4EKEY, aa64_sve2_sm4, gen_gvec_ool_arg_zzz,
|
||||
gen_helper_crypto_sm4ekey, a, 0)
|
||||
TRANS_FEAT_NONSTREAMING(SM4E, aa64_sve2_sm4, gen_gvec_ool_arg_zzz,
|
||||
gen_helper_crypto_sm4e, a, 0)
|
||||
TRANS_FEAT_NONSTREAMING(SM4EKEY, aa64_sve2_sm4, gen_gvec_ool_arg_zzz,
|
||||
gen_helper_crypto_sm4ekey, a, 0)
|
||||
|
||||
TRANS_FEAT(RAX1, aa64_sve2_sha3, gen_gvec_fn_arg_zzz, gen_gvec_rax1, a)
|
||||
TRANS_FEAT_NONSTREAMING(RAX1, aa64_sve2_sha3, gen_gvec_fn_arg_zzz,
|
||||
gen_gvec_rax1, a)
|
||||
|
||||
TRANS_FEAT(FCVTNT_sh, aa64_sve2, gen_gvec_fpst_arg_zpz,
|
||||
gen_helper_sve2_fcvtnt_sh, a, 0, FPST_FPCR)
|
||||
|
|
Loading…
Reference in New Issue