mesa: replace questionable CPU_TO_LE32 macro with function
authorBrian Paul <brianp@vmware.com>
Wed, 20 Jan 2010 15:02:59 +0000 (08:02 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 20 Jan 2010 15:18:33 +0000 (08:18 -0700)
src/mesa/main/compiler.h

index 9eab1ead2468d69b836a4a42058ec2fb8e252cd3..9cef99f67a53a08d3913f473a79cd06ab264e242 100644 (file)
@@ -223,8 +223,8 @@ extern "C" {
 
 
 /**
- * Either define MESA_BIG_ENDIAN or MESA_LITTLE_ENDIAN.
- * Do not use them unless absolutely necessary!
+ * Either define MESA_BIG_ENDIAN or MESA_LITTLE_ENDIAN, and CPU_TO_LE32.
+ * Do not use these unless absolutely necessary!
  * Try to use a runtime test instead.
  * For now, only used by some DRI hardware drivers for color/texel packing.
  */
@@ -236,10 +236,13 @@ extern "C" {
 #include <CoreFoundation/CFByteOrder.h>
 #define CPU_TO_LE32( x )       CFSwapInt32HostToLittle( x )
 #elif (defined(_AIX) || defined(__blrts))
-#define CPU_TO_LE32( x )        x = ((x & 0x000000ff) << 24) | \
-                                    ((x & 0x0000ff00) <<  8) | \
-                                    ((x & 0x00ff0000) >>  8) | \
-                                    ((x & 0xff000000) >> 24);
+static INLINE GLuint CPU_TO_LE32(GLuint x)
+{
+   return (((x & 0x000000ff) << 24) |
+           ((x & 0x0000ff00) <<  8) |
+           ((x & 0x00ff0000) >>  8) |
+           ((x & 0xff000000) >> 24));
+}
 #else /*__linux__ */
 #include <sys/endian.h>
 #define CPU_TO_LE32( x )       bswap32( x )