Optimize AES-CTR for ARM Neoverse V1 and V2.
authorfisher.yu <fisher.yu@arm.com>
Tue, 17 Oct 2023 08:10:34 +0000 (08:10 +0000)
committerTomas Mraz <tomas@openssl.org>
Wed, 29 Nov 2023 17:10:31 +0000 (18:10 +0100)
commitcc82b09cbde0b809d37c23cb1ef9f1f41fc7f959
treeea95cee05b1404d1b47dfb4fa0e571ec7096ff10
parentc8fe4b5948486e792016208f7c8ccea9c380f354
Optimize AES-CTR for ARM Neoverse V1 and V2.

    Unroll AES-CTR loops to a maximum 12 blocks for ARM Neoverse V1 and
    V2, to fully utilize their AES pipeline resources.

    Improvement on ARM Neoverse V1.

    Package Size(Bytes) 16 32 64 128 256 1024
    Improvement(%) 3.93 -0.45 11.30 4.31 12.48 37.66
    Package Size(Bytes) 1500 8192 16384 61440 65536
    Improvement(%) 37.16 38.90 39.89 40.55 40.41

Change-Id: Ifb8fad9af22476259b9ba75132bc3d8010a7fdbd

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22733)
crypto/aes/asm/aesv8-armx.pl
crypto/arm_arch.h
crypto/armcap.c
include/crypto/aes_platform.h
providers/implementations/ciphers/cipher_aes_gcm_hw_armv8.inc
providers/implementations/ciphers/cipher_aes_hw.c
providers/implementations/ciphers/cipher_aes_hw_armv8.inc [new file with mode: 0644]