https://gcc.gnu.org/g:6e47e6d48844ee578fd384aaa4b8cd62d73b49db
commit r15-8032-g6e47e6d48844ee578fd384aaa4b8cd62d73b49db Author: Wilco Dijkstra <wilco.dijks...@arm.com> Date: Mon Feb 24 16:38:02 2025 +0000 libgcc: Remove PREDRES and LS64 from AArch64 cpuinfo 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. [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. Diff: --- gcc/common/config/aarch64/cpuinfo.h | 8 ++++---- gcc/config/aarch64/aarch64-option-extensions.def | 2 +- libgcc/config/aarch64/cpuinfo.c | 19 ------------------- 3 files changed, 5 insertions(+), 24 deletions(-) diff --git a/gcc/common/config/aarch64/cpuinfo.h b/gcc/common/config/aarch64/cpuinfo.h index aff43908e01a..cd3c2b20c531 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 aa8d315c240f..79b79358c5d4 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 6b4952ee542e..dda9dc696893 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);