Author: mturk
Date: Tue Aug 11 12:22:52 2009
New Revision: 803083

URL: http://svn.apache.org/viewvc?rev=803083&view=rev
Log:
Use assembler rotate function for MSVC 2003 and up

Modified:
    commons/sandbox/runtime/trunk/src/main/native/shared/sha2.c

Modified: commons/sandbox/runtime/trunk/src/main/native/shared/sha2.c
URL: 
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/sha2.c?rev=803083&r1=803082&r2=803083&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/sha2.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/sha2.c Tue Aug 11 
12:22:52 2009
@@ -112,10 +112,23 @@
  */
 /* Shift-right (used in SHA-256, SHA-384, and SHA-512): */
 #define R(b,x)      ((x) >> (b))
+
+#if defined(_MSC_VER)
+/* 32-bit Rotate-right (used in SHA-256): */
+#define S32(b,x)    _rotr((x), (b))
+#if _MSC_VER >= 1300
+/* 64-bit Rotate-right (used in SHA-384 and SHA-512): */
+#define S64(b,x)    _rotr64((x), (b))
+#else
+/* 64-bit Rotate-right (used in SHA-384 and SHA-512): */
+#define S64(b,x)    (((x) >> (b)) | ((x) << (64 - (b))))
+#endif
+#else
 /* 32-bit Rotate-right (used in SHA-256): */
 #define S32(b,x)    (((x) >> (b)) | ((x) << (32 - (b))))
 /* 64-bit Rotate-right (used in SHA-384 and SHA-512): */
 #define S64(b,x)    (((x) >> (b)) | ((x) << (64 - (b))))
+#endif
 
 /* Two of six logical functions used in SHA-256, SHA-384, and SHA-512: */
 #define Ch(x,y,z)   (((x) & (y)) ^ ((~(x)) & (z)))


Reply via email to