Wilco Dijkstra <[email protected]> writes:
> Change AArch64 cpuinfo to follow the latest updates to the FMV spec [1]:
> Remove FEAT_PREDRES and FEAT_LS64*. Preserve the ordering in enum
> CPUFeatures.
>
> Passes regress, OK for commit?
>
> [1] https://github.com/ARM-software/acle/pull/382
>
> gcc:
> * common/config/aarch64/cpuinfo.h: Remove FEAT_PREDRES and FEAT_LS64*.
> * config/aarch64/aarch64-option-extensions.def: Remove FMV support
> for PREDRES.
>
> libgcc:
> * config/aarch64/cpuinfo.c (__init_cpu_features_constructor):
> Remove FEAT_PREDRES and FEAT_LS64* support.
OK, thanks, and sorry for the slow reply.
Richard
> ---
>
> diff --git a/gcc/common/config/aarch64/cpuinfo.h
> b/gcc/common/config/aarch64/cpuinfo.h
> index
> aff43908e01a685bebe56351d61cb966c3cc9736..cd3c2b20c5315b035870528fa39246bbc780f369
> 100644
> --- a/gcc/common/config/aarch64/cpuinfo.h
> +++ b/gcc/common/config/aarch64/cpuinfo.h
> @@ -75,13 +75,13 @@ enum CPUFeatures {
> FEAT_MEMTAG2,
> FEAT_MEMTAG3,
> FEAT_SB,
> - FEAT_PREDRES,
> + FEAT_unused1,
> FEAT_SSBS,
> FEAT_SSBS2,
> FEAT_BTI,
> - FEAT_LS64,
> - FEAT_LS64_V,
> - FEAT_LS64_ACCDATA,
> + FEAT_unused2,
> + FEAT_unused3,
> + FEAT_unused4,
> FEAT_WFXT,
> FEAT_SME_F64,
> FEAT_SME_I64,
> diff --git a/gcc/config/aarch64/aarch64-option-extensions.def
> b/gcc/config/aarch64/aarch64-option-extensions.def
> index
> aa8d315c240fbd25b49008b131cc09f04001eb80..79b79358c5d4a9e23c7601f7a1ba742dddadb778
> 100644
> --- a/gcc/config/aarch64/aarch64-option-extensions.def
> +++ b/gcc/config/aarch64/aarch64-option-extensions.def
> @@ -213,7 +213,7 @@ AARCH64_OPT_EXTENSION("memtag", MEMTAG, (), (), (), "")
>
> AARCH64_OPT_FMV_EXTENSION("sb", SB, (), (), (), "sb")
>
> -AARCH64_OPT_FMV_EXTENSION("predres", PREDRES, (), (), (), "")
> +AARCH64_OPT_EXTENSION("predres", PREDRES, (), (), (), "")
>
> AARCH64_OPT_EXTENSION("ssbs", SSBS, (), (), (), "ssbs")
>
> diff --git a/libgcc/config/aarch64/cpuinfo.c b/libgcc/config/aarch64/cpuinfo.c
> index
> 6b4952ee542e3fdb58f007200aa8690261b1c543..dda9dc696893cd392dd1e15d03672053cc481c6f
> 100644
> --- a/libgcc/config/aarch64/cpuinfo.c
> +++ b/libgcc/config/aarch64/cpuinfo.c
> @@ -339,25 +339,6 @@ __init_cpu_features_constructor (unsigned long hwcap,
> setCPUFeature(FEAT_SME_I64);
> if (hwcap2 & HWCAP2_SME_F64F64)
> setCPUFeature(FEAT_SME_F64);
> - if (hwcap & HWCAP_CPUID)
> - {
> - unsigned long ftr;
> -
> - getCPUFeature(ID_AA64ISAR1_EL1, ftr);
> - /* ID_AA64ISAR1_EL1.SPECRES >= 0b0001 */
> - if (extractBits(ftr, 40, 4) >= 0x1)
> - setCPUFeature(FEAT_PREDRES);
> - /* ID_AA64ISAR1_EL1.LS64 >= 0b0001 */
> - if (extractBits(ftr, 60, 4) >= 0x1)
> - setCPUFeature(FEAT_LS64);
> - /* ID_AA64ISAR1_EL1.LS64 >= 0b0010 */
> - if (extractBits(ftr, 60, 4) >= 0x2)
> - setCPUFeature(FEAT_LS64_V);
> - /* ID_AA64ISAR1_EL1.LS64 >= 0b0011 */
> - if (extractBits(ftr, 60, 4) >= 0x3)
> - setCPUFeature(FEAT_LS64_ACCDATA);
> - }
> -
> if (hwcap & HWCAP_FP)
> {
> setCPUFeature(FEAT_FP);