diff options
author | Andy Polyakov <appro@openssl.org> | 2018-03-12 10:46:23 +0100 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2018-03-13 19:31:53 +0100 |
commit | b3e02d06ba802aaa137b5f5000b02c504b72cdcb (patch) | |
tree | 5d29d48037f17b98f07f93d52bf2c8e35bd47964 /crypto | |
parent | store/loader_file.c: rename variables causing conflicts with Android NDK. (diff) | |
download | openssl-b3e02d06ba802aaa137b5f5000b02c504b72cdcb.tar.xz openssl-b3e02d06ba802aaa137b5f5000b02c504b72cdcb.zip |
ec/curve25519.c: resolve regression with Android NDK's arm64 gcc.
Unlike "upstream", Android NDK's arm64 gcc [but not clang] performs
64x64=128-bit multiplications with library calls, which appears to
have devastating impact on performance. [The condition is reduced to
__ANDROID__ [&& !__clang__], because x86_64 has corresponding
assembly module.]
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5589)
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/ec/curve25519.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/ec/curve25519.c b/crypto/ec/curve25519.c index 45525f4742..0f18ff7c7d 100644 --- a/crypto/ec/curve25519.c +++ b/crypto/ec/curve25519.c @@ -13,7 +13,8 @@ #if defined(X25519_ASM) \ || ( (defined(__SIZEOF_INT128__) && __SIZEOF_INT128__ == 16) \ - && !defined(__sparc__) ) + && !defined(__sparc__) \ + && !(defined(__ANDROID__) && !defined(__clang__)) ) /* * Base 2^51 implementation. */ |