BACKPORT: crypto: arm64/aes-modes - get rid of literal load of addend vector
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Thu, 23 Aug 2018 16:48:45 +0000 (17:48 +0100)
committerBruno Martins <bgcngm@gmail.com>
Sun, 22 Oct 2023 14:12:32 +0000 (15:12 +0100)
commitaa955f54ac25981e75206aa99b9d50c6b2fdaf74
tree056b2906fe52ca9349422c84b0a0db85afa02b55
parenta00cdb54dec79d56b3423a02a8fcea3dcba66af0
BACKPORT: crypto: arm64/aes-modes - get rid of literal load of addend vector

commit ed6ed11830a9ded520db31a6e2b69b6b0a1eb0e2 upstream.

Replace the literal load of the addend vector with a sequence that
performs each add individually. This sequence is only 2 instructions
longer than the original, and 2% faster on Cortex-A53.

This is an improvement by itself, but also works around a Clang issue,
whose integrated assembler does not implement the GNU ARM asm syntax
completely, and does not support the =literal notation for FP registers
(more info at https://bugs.llvm.org/show_bug.cgi?id=38642)

Cc: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Change-Id: Ic8f7adcd28bd2da57b465a8e11e9d55b5669a539
arch/arm64/crypto/aes-modes.S