aboutsummaryrefslogtreecommitdiff
path: root/drivers/builtin_openssl2/crypto/sha/sha512.c
diff options
context:
space:
mode:
authormrezai2016-04-15 19:03:35 +0430
committerRémi Verschelde2016-04-27 08:49:39 +0200
commit3efa0f130dbaaba5eecb42f76ed7518eedfdf0c8 (patch)
tree91da0400f0a1386f7122e25c559abdfb53a9ec9e /drivers/builtin_openssl2/crypto/sha/sha512.c
parent47c7b535d2cdcb89c7799475662c70ca9c7ff41d (diff)
downloadgodot-3efa0f130dbaaba5eecb42f76ed7518eedfdf0c8.tar.gz
godot-3efa0f130dbaaba5eecb42f76ed7518eedfdf0c8.tar.zst
godot-3efa0f130dbaaba5eecb42f76ed7518eedfdf0c8.zip
Update OpenSSL to version 1.0.2g
(cherry picked from commit e97922f22038e9049ed4c2db5b3736dfaa0edde3)
Diffstat (limited to 'drivers/builtin_openssl2/crypto/sha/sha512.c')
-rw-r--r--drivers/builtin_openssl2/crypto/sha/sha512.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/builtin_openssl2/crypto/sha/sha512.c b/drivers/builtin_openssl2/crypto/sha/sha512.c
index de0aad8c9..3bf66ae19 100644
--- a/drivers/builtin_openssl2/crypto/sha/sha512.c
+++ b/drivers/builtin_openssl2/crypto/sha/sha512.c
@@ -55,6 +55,7 @@ const char SHA512_version[] = "SHA-512" OPENSSL_VERSION_PTEXT;
# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
defined(__x86_64) || defined(_M_AMD64) || defined(_M_X64) || \
defined(__s390__) || defined(__s390x__) || \
+ defined(__aarch64__) || \
defined(SHA512_ASM)
# define SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA
# endif
@@ -353,6 +354,18 @@ static const SHA_LONG64 K512[80] = {
asm ("rotrdi %0,%1,%2" \
: "=r"(ret) \
: "r"(a),"K"(n)); ret; })
+# elif defined(__aarch64__)
+# define ROTR(a,n) ({ SHA_LONG64 ret; \
+ asm ("ror %0,%1,%2" \
+ : "=r"(ret) \
+ : "r"(a),"I"(n)); ret; })
+# if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \
+ __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__
+# define PULL64(x) ({ SHA_LONG64 ret; \
+ asm ("rev %0,%1" \
+ : "=r"(ret) \
+ : "r"(*((const SHA_LONG64 *)(&(x))))); ret; })
+# endif
# endif
# elif defined(_MSC_VER)
# if defined(_WIN64) /* applies to both IA-64 and AMD64 */