From 5499cefb8b5421eee16b3b65a90f14ca8151b3fd Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Fri, 18 Oct 2019 17:00:17 -0400 Subject: Use umulh for Aarch64 multiply This saves about 30% on the Integer multiply operations. For example, RSA 1024 encryption goes from 0.068 to 0.044 ms/op. RSA 2048 goes from 0.170 to 0.100 ms/op. We should have taken this sooner. Ugh... --- config_int.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'config_int.h') diff --git a/config_int.h b/config_int.h index 205deb7a..49568bc4 100644 --- a/config_int.h +++ b/config_int.h @@ -66,7 +66,7 @@ const lword LWORD_MAX = W64LIT(0xffffffffffffffff); typedef word64 word; #else #define CRYPTOPP_NATIVE_DWORD_AVAILABLE 1 - #if defined(__alpha__) || defined(__ia64__) || defined(_ARCH_PPC64) || defined(__x86_64__) || defined(__mips64) || defined(__sparc64__) + #if defined(__alpha__) || defined(__ia64__) || defined(_ARCH_PPC64) || defined(__x86_64__) || defined(__mips64) || defined(__sparc64__) || defined(__aarch64__) #if ((CRYPTOPP_GCC_VERSION >= 30400) || (CRYPTOPP_LLVM_CLANG_VERSION >= 30000) || (CRYPTOPP_APPLE_CLANG_VERSION >= 40300)) && (__SIZEOF_INT128__ >= 16) // GCC 4.0.1 on MacOS X is missing __umodti3 and __udivti3 // GCC 4.8.3 and bad uint128_t ops on PPC64/POWER7 (Issue 421) -- cgit v1.2.1