kernel_optimize_test/arch/arm/crypto
Sami Tolvanen f2f770d74a crypto: arm/sha256 - Add optimized SHA-256/224
Add Andy Polyakov's optimized assembly and NEON implementations for
SHA-256/224.

The sha256-armv4.pl script for generating the assembly code is from
OpenSSL commit 51f8d095562f36cdaa6893597b5c609e943b0565.

Compared to sha256-generic these implementations have the following
tcrypt speed improvements on Motorola Nexus 6 (Snapdragon 805):

  bs    b/u      sha256-neon  sha256-asm
  16    16       x1.32        x1.19
  64    16       x1.27        x1.15
  64    64       x1.36        x1.20
  256   16       x1.22        x1.11
  256   64       x1.36        x1.19
  256   256      x1.59        x1.23
  1024  16       x1.21        x1.10
  1024  256      x1.65        x1.23
  1024  1024     x1.76        x1.25
  2048  16       x1.21        x1.10
  2048  256      x1.66        x1.23
  2048  1024     x1.78        x1.25
  2048  2048     x1.79        x1.25
  4096  16       x1.20        x1.09
  4096  256      x1.66        x1.23
  4096  1024     x1.79        x1.26
  4096  4096     x1.82        x1.26
  8192  16       x1.20        x1.09
  8192  256      x1.67        x1.23
  8192  1024     x1.80        x1.26
  8192  4096     x1.85        x1.28
  8192  8192     x1.85        x1.27

Where bs refers to block size and b/u to bytes per update.

Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Cc: Andy Polyakov <appro@openssl.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2015-04-03 18:03:40 +08:00
..
.gitignore ARM: add .gitignore entry for aesbs-core.S 2013-10-07 15:43:53 +01:00
aes_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
aes_glue.h ARM: move AES typedefs and function prototypes to separate header 2013-10-04 09:26:54 +02:00
aes-armv4.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
aes-ce-core.S crypto: arm - AES in ECB/CBC/CTR/XTS modes using ARMv8 Crypto Extensions 2015-03-12 21:13:36 +11:00
aes-ce-glue.c crypto: aes-ce - mark ARMv8 AES helper ciphers 2015-03-31 21:21:12 +08:00
aesbs-core.S_shipped CRYPTO: Fix more AES build errors 2014-01-05 13:59:56 +00:00
aesbs-glue.c crypto: aesbs - mark NEON bit sliced AES helper ciphers 2015-03-31 21:21:11 +08:00
bsaes-armv7.pl CRYPTO: Fix more AES build errors 2014-01-05 13:59:56 +00:00
ghash-ce-core.S crypto: arm/ghash - fix big-endian bug in ghash 2015-03-24 22:24:56 +11:00
ghash-ce-glue.c crypto: ghash-ce - mark GHASH ARMv8 vmull.p64 helper ciphers 2015-03-31 21:21:07 +08:00
Kconfig crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
Makefile crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
sha1_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
sha1_neon_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
sha1-armv4-large.S ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling 2013-05-22 22:01:35 +01:00
sha1-armv7-neon.S ARM: 8125/1: crypto: enable NEON SHA-1 for big endian 2014-08-27 15:44:11 +01:00
sha1-ce-core.S crypto: arm - add support for SHA1 using ARMv8 Crypto Instructions 2015-03-12 21:13:35 +11:00
sha1-ce-glue.c crypto: arm - add support for SHA1 using ARMv8 Crypto Instructions 2015-03-12 21:13:35 +11:00
sha2-ce-core.S crypto: arm - add support for SHA-224/256 using ARMv8 Crypto Extensions 2015-03-12 21:13:35 +11:00
sha2-ce-glue.c crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
sha256_glue.c crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
sha256_glue.h crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
sha256_neon_glue.c crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
sha256-armv4.pl crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
sha256-core.S_shipped crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
sha512_neon_glue.c crypto: arm - replace memset by memzero_explicit 2014-12-02 22:55:51 +08:00
sha512-armv7-neon.S ARM: 8120/1: crypto: sha512: add ARM NEON implementation 2014-08-02 08:51:50 +01:00