* basic.c (check_one_md): Kludge to check a one million "a".
[libgcrypt.git] / cipher / bithelp.h
index c9fda65..1505324 100644 (file)
@@ -22,7 +22,7 @@
 
 
 /****************
- * Rotate a 32 bit integer by n bytes
+ * Rotate the 32 bit unsigned integer X by N bits left/right
  */
 #if defined(__GNUC__) && defined(__i386__)
 static inline u32
@@ -34,7 +34,20 @@ rol( u32 x, int n)
        return x;
 }
 #else
-  #define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) )
+#define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) )
+#endif
+
+#if defined(__GNUC__) && defined(__i386__)
+static inline u32
+ror(u32 x, int n)
+{
+       __asm__("rorl %%cl,%0"
+               :"=r" (x)
+               :"0" (x),"c" (n));
+       return x;
+}
+#else
+#define ror(x,n) ( ((x) >> (n)) | ((x) << (32-(n))) )
 #endif