aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/bn/bn_lcl.h
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2013-10-13 19:15:15 +0200
committerAndy Polyakov <appro@openssl.org>2013-10-13 19:15:15 +0200
commit039081b80977e2a5de84e1f88f8b4d025b559956 (patch)
treeafbd005de48985f2218b8e40faeb011cf8eb3b80 /crypto/bn/bn_lcl.h
parent0c2adb0a9be76da8de9bbfd5377215f71711a52e (diff)
downloadopenssl-039081b80977e2a5de84e1f88f8b4d025b559956.tar.gz
Initial aarch64 bits.
Diffstat (limited to 'crypto/bn/bn_lcl.h')
-rw-r--r--crypto/bn/bn_lcl.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/crypto/bn/bn_lcl.h b/crypto/bn/bn_lcl.h
index 64df27aaf9..90787e576e 100644
--- a/crypto/bn/bn_lcl.h
+++ b/crypto/bn/bn_lcl.h
@@ -318,6 +318,15 @@ extern "C" {
: "r"(a), "r"(b));
# endif
# endif
+# elif defined(__aarch64__) && defined(SIXTY_FOUR_BIT_LONG)
+# if defined(__GNUC__) && __GNUC__>=2
+# define BN_UMULT_HIGH(a,b) ({ \
+ register BN_ULONG ret; \
+ asm ("umulh %0,%1,%2" \
+ : "=r"(ret) \
+ : "r"(a), "r"(b)); \
+ ret; })
+# endif
# endif /* cpu */
#endif /* OPENSSL_NO_ASM */