SHA-512: Add SSSE3 implementation for x86-64
authorJussi Kivilinna <jussi.kivilinna@iki.fi>
Thu, 12 Dec 2013 10:43:08 +0000 (12:43 +0200)
committerJussi Kivilinna <jussi.kivilinna@iki.fi>
Thu, 12 Dec 2013 22:13:11 +0000 (00:13 +0200)
commit69a6d0f9562fcd26112a589318c13de66ce1700e
tree506b17266d73785bcfdf5462e986994ce769eeca
parente1a3931263e67aacec3c0bfcaa86c7d1441d5c6a
SHA-512: Add SSSE3 implementation for x86-64

* cipher/Makefile.am: Add 'sha512-ssse3-amd64.S'.
* cipher/sha512-ssse3-amd64.S: New.
* cipher/sha512.c (USE_SSSE3): New.
(SHA512_CONTEXT) [USE_SSSE3]: Add 'use_ssse3'.
(sha512_init, sha384_init) [USE_SSSE3]: Initialize 'use_ssse3'.
[USE_SSSE3] (_gcry_sha512_transform_amd64_ssse3): New.
(transform) [USE_SSSE3]: Call SSSE3 implementation.
* configure.ac (sha512): Add 'sha512-ssse3-amd64.lo'.
--

Patch adds fast SSSE3 implementation of SHA-512 by Intel Corporation. The
assembly source is licensed under 3-clause BSD license, thus compatible
with LGPL2.1+. Original source can be accessed at:
 http://www.intel.com/p/en_US/embedded/hwsw/technology/packet-processing#docs

Implementation is described in white paper
 "Fast SHA512 Implementations on IntelĀ® Architecture Processors"
 http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/fast-sha512-implementations-ia-processors-paper.html

Benchmarks:

cpu                 Old         New         Diff
Intel i5-4570       10.11 c/B    7.56 c/B   1.33x
Intel i5-2450M      14.11 c/B   10.53 c/B   1.33x
Intel Core2 T8100   11.92 c/B   10.22 c/B   1.16x

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
cipher/Makefile.am
cipher/sha512-ssse3-amd64.S [new file with mode: 0644]
cipher/sha512.c
configure.ac