From: Mark Kettenis Subject: Re: powerpc64: filling in a few more HWCAP flags To: George Koehler Cc: tech@openbsd.org, brad@comstyle.com Date: Tue, 21 Jul 2026 08:59:10 +0200 > Date: Mon, 20 Jul 2026 21:41:49 -0400 > From: George Koehler > > 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? ok kettenis@ > 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: > >