summaryrefslogtreecommitdiffstats
path: root/crypto/openssl
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2010-09-21 10:22:29 +0000
committerrpaulo <rpaulo@FreeBSD.org>2010-09-21 10:22:29 +0000
commit619042c66828607943b3c5c67d134062a5c6759d (patch)
tree3efb04e2bbc0d1961bd7d8e66155632d30b61071 /crypto/openssl
parent01c450f31884971139cdabbe265790a0dbefdf46 (diff)
downloadFreeBSD-src-619042c66828607943b3c5c67d134062a5c6759d.zip
FreeBSD-src-619042c66828607943b3c5c67d134062a5c6759d.tar.gz
Bring in OpenSSL checkin 19821:
Make inline assembler clang-friendly [from HEAD]. openssl/crypto/md32_common.h 1.45.2.1 -> 1.45.2.2 openssl/crypto/rc5/rc5_locl.h 1.8 -> 1.8.8.1 Approved by: simon
Diffstat (limited to 'crypto/openssl')
-rw-r--r--crypto/openssl/crypto/md32_common.h15
-rw-r--r--crypto/openssl/crypto/rc5/rc5_locl.h4
2 files changed, 13 insertions, 6 deletions
diff --git a/crypto/openssl/crypto/md32_common.h b/crypto/openssl/crypto/md32_common.h
index 606aea6..904bf70 100644
--- a/crypto/openssl/crypto/md32_common.h
+++ b/crypto/openssl/crypto/md32_common.h
@@ -165,7 +165,7 @@
asm ( \
"roll %1,%0" \
: "=r"(ret) \
- : "I"(n), "0"(a) \
+ : "I"(n), "0"((unsigned int)(a)) \
: "cc"); \
ret; \
})
@@ -383,6 +383,7 @@ int HASH_FINAL (unsigned char *md, HASH_CTX *c)
}
#ifndef MD32_REG_T
+#if defined(__alpha) || defined(__sparcv9) || defined(__mips)
#define MD32_REG_T long
/*
* This comment was originaly written for MD5, which is why it
@@ -400,9 +401,15 @@ int HASH_FINAL (unsigned char *md, HASH_CTX *c)
* Well, to be honest it should say that this *prevents*
* performance degradation.
* <appro@fy.chalmers.se>
- * Apparently there're LP64 compilers that generate better
- * code if A-D are declared int. Most notably GCC-x86_64
- * generates better code.
+ */
+#else
+/*
+ * Above is not absolute and there are LP64 compilers that
+ * generate better code if MD32_REG_T is defined int. The above
+ * pre-processor condition reflects the circumstances under which
+ * the conclusion was made and is subject to further extension.
* <appro@fy.chalmers.se>
*/
+#define MD32_REG_T int
+#endif
#endif
diff --git a/crypto/openssl/crypto/rc5/rc5_locl.h b/crypto/openssl/crypto/rc5/rc5_locl.h
index 282dd38..d337f73 100644
--- a/crypto/openssl/crypto/rc5/rc5_locl.h
+++ b/crypto/openssl/crypto/rc5/rc5_locl.h
@@ -154,14 +154,14 @@
# define ROTATE_l32(a,n) ({ register unsigned int ret; \
asm ("roll %%cl,%0" \
: "=r"(ret) \
- : "c"(n),"0"(a) \
+ : "c"(n),"0"((unsigned int)(a)) \
: "cc"); \
ret; \
})
# define ROTATE_r32(a,n) ({ register unsigned int ret; \
asm ("rorl %%cl,%0" \
: "=r"(ret) \
- : "c"(n),"0"(a) \
+ : "c"(n),"0"((unsigned int)(a)) \
: "cc"); \
ret; \
})
OpenPOWER on IntegriCloud