Home GnuPG

Add GHASH AArch64/SIMD intrinsics implementation

Description

Add GHASH AArch64/SIMD intrinsics implementation

* cipher/Makefile.am: Add 'cipher-gcm-aarch64-simd.c'.
* cipher/cipher-gcm-aarch64-simd.c: New.
* cipher/cipher-gcm.c [GCM_USE_AARCH64]: Add function
prototypes for AArch64/SIMD implementation.
(setupM) [GCM_USE_AARCH64]: Add setup for AArch64/SIMD
implementation.
* cipher/cipher-internal.h (GCM_USE_AARCH64): New.
* configure.ac: Add 'cipher-gcm-aarch64-simd.c'.

Patch adds GHASH/GCM intrinsics implementation for
AArch64. This is for CPUs without crypto extensions
instruction set support.

Benchmark on Cortex-A53 (1152 Mhz):

Before:

|  nanosecs/byte   mebibytes/sec   cycles/byte

GMAC_AES | 12.22 ns/B 78.07 MiB/s 14.07 c/B

After:

|  nanosecs/byte   mebibytes/sec   cycles/byte

GMAC_AES | 7.38 ns/B 129.2 MiB/s 8.50 c/B

  • Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>

Details

Provenance
jukiviliAuthored on Oct 28 2024, 9:35 PM
Parents
rC94a63aedbbd2: Add AES Vector Permute intrinsics implementation for AArch64
Branches
Unknown
Tags
Unknown