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.
This commit is contained in:
Wilco Dijkstra
2025-02-24 16:38:02 +00:00
parent 11c6d8cc9e
commit 6e47e6d488
3 changed files with 5 additions and 24 deletions

View File

@@ -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,

View File

@@ -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")

View File

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