Add Arm HWCAP values from Linux 6.2 to bits/hwcap.h
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
Commit Message
Linux 6.2 adds six new Arm HWCAP values and two new HWCAP2 values; add
them to glibc's Arm bits/hwcap.h, with corresponding dl-procinfo.c and
dl-procinfo.h updates.
Tested with build-many-glibcs.py for arm-linux-gnueabi.
Comments
On Feb 25 2023, Joseph Myers wrote:
> Linux 6.2 adds six new Arm HWCAP values and two new HWCAP2 values; add
> them to glibc's Arm bits/hwcap.h, with corresponding dl-procinfo.c and
> dl-procinfo.h updates.
Ok.
>
> Tested with build-many-glibcs.py for arm-linux-gnueabi.
>
> diff --git a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
> index 8e228c1d56..f325fa93d6 100644
> --- a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
> +++ b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
> @@ -43,3 +43,9 @@
> #define HWCAP_ARM_VFPD32 524288
> #define HWCAP_ARM_LPAE 1048576
> #define HWCAP_ARM_EVTSTRM 2097152
> +#define HWCAP_FPHP 4194304
> +#define HWCAP_ASIMDHP 8388608
> +#define HWCAP_ASIMDDP 16777216
> +#define HWCAP_ASIMDFHM 33554432
> +#define HWCAP_ASIMDBF16 67108864
> +#define HWCAP_I8MM 134217728
Should that also get defines for HWCAP2?
> diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
> index 7d682978aa..ea886464ab 100644
> --- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
> +++ b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
> @@ -24,11 +24,11 @@
>
> #define _DL_HWCAP_COUNT 27
>
> -/* Low 22 bits are allocated in HWCAP. */
> -#define _DL_HWCAP_LAST 21
> +/* Low 28 bits are allocated in HWCAP. */
> +#define _DL_HWCAP_LAST 27
>
> /* Low 5 bits are allocated in HWCAP2. */
s/5/7/
> -#define _DL_HWCAP2_LAST 4
> +#define _DL_HWCAP2_LAST 6
On Sat, 25 Feb 2023, Andreas Schwab wrote:
> > diff --git a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
> > index 8e228c1d56..f325fa93d6 100644
> > --- a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
> > +++ b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
> > @@ -43,3 +43,9 @@
> > #define HWCAP_ARM_VFPD32 524288
> > #define HWCAP_ARM_LPAE 1048576
> > #define HWCAP_ARM_EVTSTRM 2097152
> > +#define HWCAP_FPHP 4194304
> > +#define HWCAP_ASIMDHP 8388608
> > +#define HWCAP_ASIMDDP 16777216
> > +#define HWCAP_ASIMDFHM 33554432
> > +#define HWCAP_ASIMDBF16 67108864
> > +#define HWCAP_I8MM 134217728
>
> Should that also get defines for HWCAP2?
I don't know - for whatever reason the initial HWCAP2 support
<https://sourceware.org/legacy-ml/libc-alpha/2014-06/msg00756.html> didn't
add defines to the header.
@@ -43,3 +43,9 @@
#define HWCAP_ARM_VFPD32 524288
#define HWCAP_ARM_LPAE 1048576
#define HWCAP_ARM_EVTSTRM 2097152
+#define HWCAP_FPHP 4194304
+#define HWCAP_ASIMDHP 8388608
+#define HWCAP_ASIMDDP 16777216
+#define HWCAP_ASIMDFHM 33554432
+#define HWCAP_ASIMDBF16 67108864
+#define HWCAP_I8MM 134217728
@@ -45,14 +45,15 @@
#if !defined PROCINFO_DECL && defined SHARED
._dl_arm_cap_flags
#else
-PROCINFO_CLASS const char _dl_arm_cap_flags[27][10]
+PROCINFO_CLASS const char _dl_arm_cap_flags[35][10]
#endif
#ifndef PROCINFO_DECL
= {
"swp", "half", "thumb", "26bit", "fastmult", "fpa", "vfp", "edsp",
"java", "iwmmxt", "crunch", "thumbee", "neon", "vfpv3", "vfpv3d16",
"tls", "vfpv4", "idiva", "idivt", "vfpd32", "lpae", "evtstrm",
- "aes", "pmull", "sha1", "sha2", "crc32",
+ "fphp", "asimdhp", "asimddp", "asimdfhm", "asimdbf16", "i8mm",
+ "aes", "pmull", "sha1", "sha2", "crc32", "sb", "ssbs",
}
#endif
#if !defined SHARED || defined PROCINFO_DECL
@@ -24,11 +24,11 @@
#define _DL_HWCAP_COUNT 27
-/* Low 22 bits are allocated in HWCAP. */
-#define _DL_HWCAP_LAST 21
+/* Low 28 bits are allocated in HWCAP. */
+#define _DL_HWCAP_LAST 27
/* Low 5 bits are allocated in HWCAP2. */
-#define _DL_HWCAP2_LAST 4
+#define _DL_HWCAP2_LAST 6
/* The kernel provides platform data but it is not interesting. */
#define _DL_HWCAP_PLATFORM 0