Rename from isar_feature_aa64_sve2_sha3 to match the feature name: FEAT_SVE_SHA3.
Reorg trans_RAX1 to use TRANS_FEAT_STREAMING_IF. Signed-off-by: Richard Henderson <[email protected]> --- bsd-user/aarch64/target_arch_elf.h | 2 +- target/arm/cpu-features.h | 2 +- linux-user/aarch64/elfload.c | 2 +- target/arm/tcg/translate-sve.c | 13 ++----------- 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/bsd-user/aarch64/target_arch_elf.h b/bsd-user/aarch64/target_arch_elf.h index 818b6f690a..8669f3f833 100644 --- a/bsd-user/aarch64/target_arch_elf.h +++ b/bsd-user/aarch64/target_arch_elf.h @@ -129,7 +129,7 @@ static uint32_t get_elf_hwcap2(void) GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve_bitperm, ARM_HWCAP2_A64_SVEBITPERM); - GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); + GET_FEATURE_ID(aa64_sve_sha3, ARM_HWCAP2_A64_SVESHA3); GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); GET_FEATURE_ID(aa64_condm_5, ARM_HWCAP2_A64_FLAGM2); GET_FEATURE_ID(aa64_frint, ARM_HWCAP2_A64_FRINT); diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 857adf4ee0..f94e8efe47 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1549,7 +1549,7 @@ static inline bool isar_feature_aa64_sme_sve_bf16(const ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, BFLOAT16) != 0; } -static inline bool isar_feature_aa64_sve2_sha3(const ARMISARegisters *id) +static inline bool isar_feature_aa64_sve_sha3(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ZFR0, SHA3) != 0; } diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 0569350e37..83791768c6 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -195,7 +195,7 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve_bitperm, ARM_HWCAP2_A64_SVEBITPERM); - GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); + GET_FEATURE_ID(aa64_sve_sha3, ARM_HWCAP2_A64_SVESHA3); GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); GET_FEATURE_ID(aa64_condm_5, ARM_HWCAP2_A64_FLAGM2); GET_FEATURE_ID(aa64_frint, ARM_HWCAP2_A64_FRINT); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 47986510e7..be7ff74add 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8297,17 +8297,8 @@ TRANS_FEAT_NONSTREAMING(SM4E, aa64_sve2_sm4, gen_gvec_ool_arg_zzz, TRANS_FEAT_NONSTREAMING(SM4EKEY, aa64_sve2_sm4, gen_gvec_ool_arg_zzz, gen_helper_crypto_sm4ekey, a, 0) -static bool trans_RAX1(DisasContext *s, arg_RAX1 *a) -{ - if (!dc_isar_feature(aa64_sve2_sha3, s)) { - return false; - } - if (!dc_isar_feature(aa64_sme2p1, s)) { - /* SME2p1 adds this as valid in streaming SVE mode */ - s->is_nonstreaming = true; - } - return gen_gvec_fn_arg_zzz(s, gen_gvec_rax1, a); -} +TRANS_FEAT_STREAMING_IF(RAX1, aa64_sve_sha3, aa64_sme2p1, + gen_gvec_fn_arg_zzz, gen_gvec_rax1, a) TRANS_FEAT(FCVTNT_sh_m, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_sh, a, 0, FPST_A64) -- 2.43.0
