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);

Reply via email to