-#if (defined(__i486__) || defined(__i586__) || defined(__i686__)) && defined(__GNUC__) && defined(USE_BSWAP)
-
- __asm__ ("bswap %0" : "=r" (data) : "0" (data));
- *(uint32 *)addr = data;
-
-#elif (defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__)) && defined(__GNUC__)
-
- __asm__("xchgb %b0,%h0\n\t" /* swap lower bytes */
- "rorl $16,%0\n\t" /* swap words */
- "xchgb %b0,%h0" /* swap higher bytes */
- :"=q" (data)
- : "0" (data));
-
- *(uint32 *)addr = data;
-
-#elif (defined(_POWER) && defined(_AIX)) || (defined(__PPC__) && defined(__BIG_ENDIAN__))
- /* Power & PowerPC computers in big endian mode can handle unaligned loads&stores */
- *(uint32 *)addr = data;
-
-#elif defined(WORDS_BIGENDIAN)
- *(uint16 *)addr = (uint16)(data >> 16);
- *(uint16 *)(addr + 2) = (uint16)data;
-
-#else