OPENSSL_PPCCAP(3ossl)
π NAME π
OPENSSL_ppccap β the PowerPC processor capabilities vector. hiii bestie, welcome to the OPENSSL_PPCCAP(3ossl) manual page, where we make PowerPC capability bits make sense. π
β¨
πΈ SYNOPSIS πΈ
env OPENSSL_ppccap=... <application>
π¦ DESCRIPTION π¦
okay so libcrypto supports PowerPC instruction set extensions. These extensions are represented by bits in the PowerPC capabilities vector. When libcrypto initializes, it stores the results returned by PowerPC CPU capabilities detection logic in the PowerPC capabilities vector. The CPU capabilities detection methods are OS-dependent and use a combination of information gathered by the kernel during boot and probe functions that attempt to execute instructions and trap illegal instruction signals with a signal handler. πβ¨
To override the set of extensions available to an application, you can set the OPENSSL_ppccap environment variable before you start the application. The environment variable is assigned a numerical value that denotes the bits in the PowerPC capabilities vector. The ppc_arch.h header file states that, "Flags' usage can appear ambiguous, because they are set rather to reflect OpenSSL performance preferences than actual processor capabilities." π«Ά
Multiple extensions are enabled by logically OR-ing the values that represent the desired extensions. π§
β οΈ Notes: Enabling an extension on a CPU that does not support the extension will result in aSIGILLcrash. On AIX, all vector instructions can be disabled with theschedo -ro allow_vmx=0command. DO NOT USE THIS COMMAND to disable vector instructions in the OS when it is running on a CPU level that supports the instructions without also disabling them inlibcrptovia theOPENSSL_ppccapenvironment variable or the application will crash with aSIGILL. π
Currently, the following extensions are defined:
π currently defined extensions π
0x01β Name:PPC_FPU64. This flag is obsolete. π«0x02β Name:PPC_ALTIVEC. Meaning: Use AltiVec (aka VMX) instructions. In some but not all cases, this capability gates the use of later ISA vector instructions. The associated probe instruction isvor(vector logical or). Effect: Enables use of vector instructions but does not enable extensions added at specific ISA levels. However, disabling this capability disables a subset of vector extensions added at specific ISA levels even if they are otherwise enabled. π¦0x04β Name:PPC_CRYPTO207. Meaning: Use instructions added in ISA level 2.07. The associated probe instruction isvcipher(vector AES cipher round). Effect: Enables AES, SHA-2 sigma, and other ISA 2.07 instructions for AES, SHA-2, GHASH, and Poly1305. π₯0x08β Name:PPC_FPU. Meaning: Use FPU instructions. The associated probe instruction isfmr(floating move register). Effect: Enables Poly1305 FPU implementation. ThePPC_CRYPTO207capability overrides this effect. π0x10β Name:PPC_MADD300. Meaning: Use instructions added in ISA level 3.00. The associated probe instruction ismaddhdu(multiply-add high doubleword unsigned). Effect: Enables use of the polynomial multiply and other ISA 3.00 instructions for AES-GCM, P-384, and P-521. π0x20β Name:PPC_MFTB. Meaning: Use themftb(move from time base) instruction. The associated probe instruction ismftb. Effect: Enables use of themftbinstruction to sample the lower 32 bits of the CPU time base register in order to acquire entropy. Considered obsolete. ThePPC_MFSPR268capability overrides this capability. π0x40β Name:PPC_MFSPR268. Meaning: Use themfspr(move from special purpose register) instruction to read SPR 268. The associated probe instruction ismfspr 268. Effect: Enables use of themfsprinstruction to sample the lower 32 bits of the CPU time base register from SPR 268, the TBL (time base lower) register, in order to acquire entropy. π0x80β Name:PPC_BRD31. Meaning: Use instructions added in ISA level 3.1. The associated probe instruction isbrd(byte-reverse doubleword). Effect: Enables use of ISA 3.1 instructions in ChaCha20. π
π RETURN VALUES π
Not available. That's it, bestie β no return values. periodt. π
π EXAMPLES π
Check currently detected capabilities:
$ openssl info -cpusettings
OPENSSL_ppccap=0x2E
The detected capabilities in the above example indicate that PPC_MFTB, PPC_FPU, PPC_CRYPTO207, PPC_MFSPR268, and PPC_ALTIVEC are enabled. π
Disable all instruction set extensions:
OPENSSL_ppccap=0x00
Enable base AltiVec extensions:
OPENSSL_ppccap=0x02
π COPYRIGHT π
Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>. π«Ά
kisses and sparkles π this page comes from OpenSSL 3.5.6, dated 2026-04-07, and yes bestie, it is the OPENSSL_PPCCAP(3ossl) manual page. πβ¨
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms