zfs/contrib/icp/gcm-simd/boringssl
Joel Low bb9225ea86 Backport AVX2 AES-GCM implementation from BoringSSL
This uses the AVX2 versions of the AESENC and PCLMULQDQ instructions; on
Zen 3 this provides an up to 80% performance improvement.

Original source:
d5440dd2c2/gen/bcm/aes-gcm-avx2-x86_64-linux.S

See the original BoringSSL commit at
3b6e1be439.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Rob Norris <robn@despairlabs.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Attila Fülöp <attila@fueloep.org>
Signed-off-by: Joel Low <joel@joelsplace.sg>
Closes #17058
2025-08-13 14:51:20 -07:00
..
aes-gcm-avx2-x86_64-linux.S Backport AVX2 AES-GCM implementation from BoringSSL 2025-08-13 14:51:20 -07:00
LICENSE Backport AVX2 AES-GCM implementation from BoringSSL 2025-08-13 14:51:20 -07:00
README Backport AVX2 AES-GCM implementation from BoringSSL 2025-08-13 14:51:20 -07:00

This directory contains the original BoringSSL [1] GCM x86-64 assembly
files [2].

The assembler files where then further modified to fit the ICP conventions.

The main purpose to include these files (and the original ones) here, is to
serve as a reference if upstream changes need to be applied to the files
included and modified in the ICP.

[1] https://github.com/google/boringssl
[2] https://github.com/google/boringssl/blob/d5440dd2c2c500ac2d3bba4afec47a054b4d99ae/gen/bcm/aes-gcm-avx2-x86_64-linux.S