gallium/util: added util_bswap32()
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Thu, 26 Nov 2009 15:58:59 +0000 (16:58 +0100)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Fri, 27 Nov 2009 20:28:56 +0000 (21:28 +0100)
src/gallium/auxiliary/util/u_math.h

index b7fc0586f399e4e0cb96df88a576522673b20565..7e75702701dc95ca3054e35fcafc9aa479f2d7e5 100644 (file)
@@ -510,6 +510,23 @@ util_bitcount(unsigned n)
 }
 
 
+/**
+ * Reverse byte order of a 32 bit word.
+ */
+static INLINE uint32_t
+util_bswap32(uint32_t n)
+{
+#if defined(PIPE_CC_GCC)
+   return __builtin_bswap32(n);
+#else
+   return (n >> 24) |
+          ((n >> 8) & 0x0000ff00) |
+          ((n << 8) & 0x00ff0000) |
+          (n << 24);
+#endif
+}
+
+
 /**
  * Clamp X to [MIN, MAX].
  * This is a macro to allow float, int, uint, etc. types.