crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher
authorJussi Kivilinna <jussi.kivilinna@iki.fi>
Sat, 13 Apr 2013 10:46:50 +0000 (13:46 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 25 Apr 2013 13:09:05 +0000 (21:09 +0800)
commitcf1521a1a5e21fd1e79a458605c4282fbfbbeee2
treea7c1fb6d047c75170ddadd0dffe40055167e9c02
parent604880107010a1e5794552d184cd5471ea31b973
crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher

Patch adds AVX2/x86-64 implementation of Twofish cipher, requiring 16 parallel
blocks for input (256 bytes). Table look-ups are performed using vpgatherdd
instruction directly from vector registers and thus should be faster than
earlier implementations. Implementation also uses 256-bit wide YMM registers,
which should give additional speed up compared to the AVX implementation.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/x86/crypto/Makefile
arch/x86/crypto/glue_helper-asm-avx2.S [new file with mode: 0644]
arch/x86/crypto/twofish-avx2-asm_64.S [new file with mode: 0644]
arch/x86/crypto/twofish_avx2_glue.c [new file with mode: 0644]
arch/x86/crypto/twofish_avx_glue.c
arch/x86/include/asm/crypto/twofish.h
crypto/Kconfig
crypto/testmgr.c