diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2020-11-17 14:32:12 +0100 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2020-11-27 17:13:39 +1100 |
commit | 71bbed437c533f08c19535abe2c1fe92cbdabc1c (patch) | |
tree | 94524ca2ec167dc63c4ce17245a6aa4add8d49d7 /crypto/rng.c | |
parent | ebe11b5625b5237d4560ab71c2d81b378049e3e8 (diff) | |
download | linux-crypto-71bbed437c533f08c19535abe2c1fe92cbdabc1c.tar.gz linux-crypto-71bbed437c533f08c19535abe2c1fe92cbdabc1c.zip |
crypto: aegis128/neon - optimize tail block handling
Avoid copying the tail block via a stack buffer if the total size
exceeds a single AEGIS block. In this case, we can use overlapping
loads and stores and NEON permutation instructions instead, which
leads to a modest performance improvement on some cores (< 5%),
and is slightly cleaner. Note that we still need to use a stack
buffer if the entire input is smaller than 16 bytes, given that
we cannot use 16 byte NEON loads and stores safely in this case.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Ondrej Mosnacek <omosnacek@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/rng.c')
0 files changed, 0 insertions, 0 deletions