Download raw body.
powerpc64: filling in a few more HWCAP flags
I'm looking for an ok on this diff, which sets elf_aux_info(3) flags
for Power ISA 2.06, 2.07, isel, and crypto. The diff is the same as
I sent last week (12 Jul).
libgcrypt in ports sees the flags and enables crypto acceleration.
SHA256 is slightly faster, and AES128 CBC encryption is over twice as
fast, in accelerated libgcrypt (versus unaccelerated LibreSSL). nss
and nettle didn't accelerate and will need a patch to start calling
elf_aux_info. LibreSSL will need some asm.
ok?
Index: arch/powerpc/include/elf.h
===================================================================
RCS file: /cvs/src/sys/arch/powerpc/include/elf.h,v
diff -u -p -r1.3 elf.h
--- arch/powerpc/include/elf.h 19 Feb 2025 18:25:03 -0000 1.3
+++ arch/powerpc/include/elf.h 13 Jul 2026 00:32:09 -0000
@@ -54,6 +54,7 @@ extern unsigned long hwcap2;
#define PPC_FEATURE2_ISEL 0x08000000
#define PPC_FEATURE2_TAR 0x04000000
#define PPC_FEATURE2_HAS_VEC_CRYPTO 0x02000000
+#define PPC_FEATURE2_VEC_CRYPTO 0x02000000
#define PPC_FEATURE2_HTM_NOSC 0x01000000
#define PPC_FEATURE2_ARCH_3_00 0x00800000
#define PPC_FEATURE2_HAS_IEEE128 0x00400000
Index: arch/powerpc64/include/elf.h
===================================================================
RCS file: /cvs/src/sys/arch/powerpc64/include/elf.h,v
diff -u -p -r1.3 elf.h
--- arch/powerpc64/include/elf.h 19 Feb 2025 18:25:03 -0000 1.3
+++ arch/powerpc64/include/elf.h 13 Jul 2026 00:32:09 -0000
@@ -54,6 +54,7 @@ extern unsigned long hwcap2;
#define PPC_FEATURE2_ISEL 0x08000000
#define PPC_FEATURE2_TAR 0x04000000
#define PPC_FEATURE2_HAS_VEC_CRYPTO 0x02000000
+#define PPC_FEATURE2_VEC_CRYPTO 0x02000000
#define PPC_FEATURE2_HTM_NOSC 0x01000000
#define PPC_FEATURE2_ARCH_3_00 0x00800000
#define PPC_FEATURE2_HAS_IEEE128 0x00400000
Index: arch/powerpc64/powerpc64/cpu.c
===================================================================
RCS file: /cvs/src/sys/arch/powerpc64/powerpc64/cpu.c,v
diff -u -p -r1.30 cpu.c
--- arch/powerpc64/powerpc64/cpu.c 28 Nov 2024 18:54:36 -0000 1.30
+++ arch/powerpc64/powerpc64/cpu.c 13 Jul 2026 00:32:09 -0000
@@ -224,9 +224,11 @@ cpu_init_features(void)
{
uint32_t pvr = mfpvr();
- hwcap = PPC_FEATURE_32 | PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU |
- PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_ALTIVEC |
- PPC_FEATURE_HAS_VSX;
+ hwcap = PPC_FEATURE_32 | PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC |
+ PPC_FEATURE_HAS_FPU | PPC_FEATURE_HAS_MMU |
+ PPC_FEATURE_ARCH_2_06 | PPC_FEATURE_HAS_VSX;
+ hwcap2 = PPC_FEATURE2_ARCH_2_07 | PPC_FEATURE2_ISEL |
+ PPC_FEATURE2_VEC_CRYPTO;
switch (CPU_VERSION(pvr)) {
case CPU_IBMPOWER9:
powerpc64: filling in a few more HWCAP flags