aarch64: Update bits/hwcap.h for Linux 4.15.
Commit Message
Define new HWCAP bits and add their name to dl-procinfo.c following
the linux definitions. Synchronizing with v4.15-rc8 version of linux,
these are not expected to change before the 4.15 release.
(Will commit this tomorrow unless there are complaints.)
2018-01-15 Szabolcs Nagy <szabolcs.nagy@arm.com>
* sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_SHA3): Define.
(HWCAP_SM3, HWCAP_SM4, HWCAP_ASIMDDP, HWCAP_SHA512, HWCAP_SVE): Define.
* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
(_dl_aarch64_cap_flags): Update.
* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
(_DL_HWCAP_COUNT): Update.
Comments
> On 15 Jan 2018, at 13:05, Szabolcs Nagy <Szabolcs.Nagy@arm.com> wrote:
>
> Define new HWCAP bits and add their name to dl-procinfo.c following
> the linux definitions. Synchronizing with v4.15-rc8 version of linux,
> these are not expected to change before the 4.15 release.
>
> (Will commit this tomorrow unless there are complaints.)
>
> 2018-01-15 Szabolcs Nagy <szabolcs.nagy@arm.com>
>
> * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_SHA3): Define.
> (HWCAP_SM3, HWCAP_SM4, HWCAP_ASIMDDP, HWCAP_SHA512, HWCAP_SVE): Define.
> * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
> (_dl_aarch64_cap_flags): Update.
> * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
> (_DL_HWCAP_COUNT): Update.
> <hwcap.diff>
Quickly comparing the the patch I had attempt myself….
I think the 16 here needs updating:
PROCINFO_CLASS const char _dl_aarch64_cap_flags[16][10]
And this needs updating too:
#define _DL_HWCAP_LAST 15
Alan.
On 15/01/18 16:57, Alan Hayward wrote:
>> On 15 Jan 2018, at 13:05, Szabolcs Nagy <Szabolcs.Nagy@arm.com> wrote:
>>
>> Define new HWCAP bits and add their name to dl-procinfo.c following
>> the linux definitions. Synchronizing with v4.15-rc8 version of linux,
>> these are not expected to change before the 4.15 release.
>>
>> (Will commit this tomorrow unless there are complaints.)
>>
>> 2018-01-15 Szabolcs Nagy <szabolcs.nagy@arm.com>
>>
>> * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_SHA3): Define.
>> (HWCAP_SM3, HWCAP_SM4, HWCAP_ASIMDDP, HWCAP_SHA512, HWCAP_SVE): Define.
>> * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
>> (_dl_aarch64_cap_flags): Update.
>> * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
>> (_DL_HWCAP_COUNT): Update.
>> <hwcap.diff>
>
> Quickly comparing the the patch I had attempt myself….
>
> I think the 16 here needs updating:
> PROCINFO_CLASS const char _dl_aarch64_cap_flags[16][10]
>
thanks for catching this.
(i'll change the code so it's less dangerous:
only one macro should be updated)
> And this needs updating too:
> #define _DL_HWCAP_LAST 15
i will remove this macro.
@@ -38,3 +38,9 @@
#define HWCAP_FCMA (1 << 14)
#define HWCAP_LRCPC (1 << 15)
#define HWCAP_DCPOP (1 << 16)
+#define HWCAP_SHA3 (1 << 17)
+#define HWCAP_SM3 (1 << 18)
+#define HWCAP_SM4 (1 << 19)
+#define HWCAP_ASIMDDP (1 << 20)
+#define HWCAP_SHA512 (1 << 21)
+#define HWCAP_SVE (1 << 22)
@@ -65,7 +65,7 @@ PROCINFO_CLASS const char _dl_aarch64_cap_flags[16][10]
/* Matches the names in arch/arm64/kernel/cpuinfo.c of Linux. */
= { "fp", "asimd", "evtstrm", "aes", "pmull", "sha1", "sha2", "crc32",
"atomics", "fphp", "asimdhp", "cpuid", "asimdrdm", "jscvt", "fcma",
- "lrcpc" }
+ "lrcpc", "dcpop", "sha3", "sm3", "sm4", "asimddp", "sha512", "sve" }
#endif
#if !defined SHARED || defined PROCINFO_DECL
;
@@ -28,7 +28,7 @@
#define _dl_procinfo(type, word) -1
/* Number of HWCAP bits set. */
-#define _DL_HWCAP_COUNT 16
+#define _DL_HWCAP_COUNT 23
/* HWCAP_CPUID should be available by default to influence IFUNC as well as
library search. */