aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilco Dijkstra <wilco.dijkstra@arm.com>2025-02-24 16:38:02 +0000
committerWilco Dijkstra <wilco.dijkstra@arm.com>2025-03-13 13:30:31 +0000
commit6e47e6d48844ee578fd384aaa4b8cd62d73b49db (patch)
tree7325a88d89a6456355e282f777cdb729ceb53030
parent11c6d8cc9e5924c3a70e9289d1be2c2885b1dc6d (diff)
downloadgcc-6e47e6d48844ee578fd384aaa4b8cd62d73b49db.zip
gcc-6e47e6d48844ee578fd384aaa4b8cd62d73b49db.tar.gz
gcc-6e47e6d48844ee578fd384aaa4b8cd62d73b49db.tar.bz2
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.
-rw-r--r--gcc/common/config/aarch64/cpuinfo.h8
-rw-r--r--gcc/config/aarch64/aarch64-option-extensions.def2
-rw-r--r--libgcc/config/aarch64/cpuinfo.c19
3 files changed, 5 insertions, 24 deletions
diff --git a/gcc/common/config/aarch64/cpuinfo.h b/gcc/common/config/aarch64/cpuinfo.h
index aff4390..cd3c2b2 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 aa8d315..79b7935 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 6b4952e..dda9dc6 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);