crypto: x86 - Add optimized MORUS implementations
authorOndrej Mosnacek <omosnacek@gmail.com>
Fri, 11 May 2018 12:19:12 +0000 (14:19 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 18 May 2018 16:15:35 +0000 (00:15 +0800)
commit6ecc9d9ff91ff26769e58164b6216c6189cb8302
tree50cebb838d99b9e520af30f0842177d196aba3a7
parent56e8e57fc3a707bf4f23f88c4822e6cbc9a950dc
crypto: x86 - Add optimized MORUS implementations

This patch adds optimized implementations of MORUS-640 and MORUS-1280,
utilizing the SSE2 and AVX2 x86 extensions.

For MORUS-1280 (which operates on 256-bit blocks) we provide both AVX2
and SSE2 implementation. Although SSE2 MORUS-1280 is slower than AVX2
MORUS-1280, it is comparable in speed to the SSE2 MORUS-640.

Signed-off-by: Ondrej Mosnacek <omosnacek@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/x86/crypto/Makefile
arch/x86/crypto/morus1280-avx2-asm.S [new file with mode: 0644]
arch/x86/crypto/morus1280-avx2-glue.c [new file with mode: 0644]
arch/x86/crypto/morus1280-sse2-asm.S [new file with mode: 0644]
arch/x86/crypto/morus1280-sse2-glue.c [new file with mode: 0644]
arch/x86/crypto/morus640-sse2-asm.S [new file with mode: 0644]
arch/x86/crypto/morus640-sse2-glue.c [new file with mode: 0644]
crypto/Kconfig