sha/keccak1600.c: subscribe more platforms for "complementing" optimization.

E.g. on MIPS64 it gives >20% improvement...

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8261)
This commit is contained in:
Andy Polyakov 2019-02-17 18:10:12 +01:00 committed by Richard Levitte
parent 8e981051ce
commit 7dec815ecd

View File

@ -25,7 +25,14 @@ void SHA3_squeeze(uint64_t A[5][5], unsigned char *out, size_t len, size_t r);
# define KECCAK_2X /* default to KECCAK_2X variant */
#endif
#if defined(__i386) || defined(__i386__) || defined(_M_IX86)
#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
(defined(__x86_64) && !defined(__BMI__)) || defined(_M_X64) || \
defined(__mips) || defined(__riscv) || defined(__s390__) || \
defined(__EMSCRIPTEN__)
/*
* These don't have "and with complement" instruction, so minimize amount
* of "not"-s. Implemented only in the [default] KECCAK_2X variant.
*/
# define KECCAK_COMPLEMENTING_TRANSFORM
#endif