The branch master has been updated via 7dec815ecde29c1eabed6b5832c7025c4eafad19 (commit) from 8e981051ceecd10754f8f6d1291414a7453c8fac (commit)
- Log ----------------------------------------------------------------- commit 7dec815ecde29c1eabed6b5832c7025c4eafad19 Author: Andy Polyakov <ap...@openssl.org> Date: Sun Feb 17 18:10:12 2019 +0100 sha/keccak1600.c: subscribe more platforms for "complementing" optimization. E.g. on MIPS64 it gives >20% improvement... Reviewed-by: Matt Caswell <m...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8261) ----------------------------------------------------------------------- Summary of changes: crypto/sha/keccak1600.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/crypto/sha/keccak1600.c b/crypto/sha/keccak1600.c index c49c4b3..7aa0755 100644 --- a/crypto/sha/keccak1600.c +++ b/crypto/sha/keccak1600.c @@ -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