Remove redundant declaration.
[openssl.git] / crypto / des / des_locl.h
index 70e833be3f65c9e87c49b78aae5fefdb24792517..e44e8e98b25041b6278676de98e0c67ba57d5e22 100644 (file)
 
 #if defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER)
 #define        ROTATE(a,n)     (_lrotr(a,n))
-#else
+#elif defined(__GNUC__) && __GNUC__>=2 && !defined(__STRICT_ANSI__) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC)
+# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
+#  define ROTATE(a,n)  ({ register unsigned int ret;   \
+                               asm ("rorl %1,%0"       \
+                                       : "=r"(ret)     \
+                                       : "I"(n),"0"(a) \
+                                       : "cc");        \
+                          ret;                         \
+                       })
+# endif
+#endif
+#ifndef ROTATE
 #define        ROTATE(a,n)     (((a)>>(n))+((a)<<(32-(n))))
 #endif