tom fogal wrote: > This has been attached to bug 25663 for a bit now, but didn't get > reviewed here. It seems like a smarter way to go about setting up > the CPU_TO_LE32 macro, because it should do a correct but potentially > suboptimal thing on platforms we don't know about (instead of breaking > the build). > > -tom
> diff --git a/src/mesa/main/compiler.h b/src/mesa/main/compiler.h > index a296404..7ca3c97 100644 > --- a/src/mesa/main/compiler.h > +++ b/src/mesa/main/compiler.h > @@ -235,15 +235,12 @@ extern "C" { > #elif defined(__APPLE__) > #include <CoreFoundation/CFByteOrder.h> > #define CPU_TO_LE32( x ) CFSwapInt32HostToLittle( x ) > -#elif (defined(_AIX) || defined(__blrts)) > +#else > #define CPU_TO_LE32( x ) x = ((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 ) > -#endif /*__linux__*/ > +#endif > #define MESA_BIG_ENDIAN 1 > #else > #define CPU_TO_LE32( x ) ( x ) The #define of CPU_TO_LE32( x ) seems incorrect/goofy. I think we should make it into an inline function. The "x" terms should be "(x)" and I don't see why the swapped result is assigned back to x. Note that in src/mesa/drivers/dri/common/spantmp2.h CPU_TO_LE32() is called with a non-trival argument that might be evaluated four times. -Brian ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev