bitrotate: Add 8 bit rotate functions.
authorSimon Josefsson <simon@josefsson.org>
Mon, 1 Sep 2008 11:55:05 +0000 (13:55 +0200)
committerSimon Josefsson <simon@josefsson.org>
Mon, 1 Sep 2008 11:55:05 +0000 (13:55 +0200)
ChangeLog
lib/bitrotate.h
modules/bitrotate

index d085060..f741e0a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2008-09-01  Simon Josefsson  <simon@josefsson.org>
 
+       * lib/bitrotate.h (rotl8, rotr8): Add.
+
        * modules/bitrotate (configure.ac): Need
        AC_REQUIRE([AC_C_INLINE]).
        (Description): Mention stdint.h.  Reported by Bruno Haible
index 8123a5c..1ac1cff 100644 (file)
@@ -57,4 +57,22 @@ rotr16 (uint16_t x, int n)
   return ((x >> n) | (x << (16 - n))) & 0xFFFF;
 }
 
+/* Given an unsigned 8-bit argument X, return the value corresponding
+   to rotating the bits N steps to the left.  N must be between 1 to 7
+   inclusive. */
+static inline uint8_t
+rotl8 (uint8_t x, int n)
+{
+  return ((x << n) | (x >> (8 - n))) & 0xFF;
+}
+
+/* Given an unsigned 8-bit argument X, return the value corresponding
+   to rotating the bits N steps to the right.  N must be in 1 to 7
+   inclusive. */
+static inline uint8_t
+rotr8 (uint8_t x, int n)
+{
+  return ((x >> n) | (x << (8 - n))) & 0xFF;
+}
+
 #endif /* _GL_BITROTATE_H */
index 13bd97e..63124a8 100644 (file)
@@ -1,5 +1,5 @@
 Description:
-Rotate bits in 16 and 32 bit integers.
+Rotate bits in unsigned 8, 16, and 32 bit integers.
 
 Files:
 lib/bitrotate.h