-#if defined(ARCH_X86)
-#ifdef HAVE_BSWAP
- asm("bswap %0" : "+r" (x));
-#else
- asm("rorw $8, %w0 \n\t"
- "rorl $16, %0 \n\t"
- "rorw $8, %w0"
- : "+r"(x));
-#endif
-#elif defined(ARCH_SH4)
- asm("swap.b %0,%0\n"
- "swap.w %0,%0\n"
- "swap.b %0,%0\n"
- : "=r"(x) : "0"(x));
-#elif defined(HAVE_ARMV6)
- asm("rev %0, %0" : "+r"(x));
-#elif defined(ARCH_ARMV4L)
- uint32_t t;
- asm ("eor %1, %0, %0, ror #16 \n\t"
- "bic %1, %1, #0xFF0000 \n\t"
- "mov %0, %0, ror #8 \n\t"
- "eor %0, %0, %1, lsr #8 \n\t"
- : "+r"(x), "+r"(t));
-#elif defined(ARCH_BFIN)
- unsigned tmp;
- asm("%1 = %0 >> 8 (V); \n\t"
- "%0 = %0 << 8 (V); \n\t"
- "%0 = %0 | %1; \n\t"
- "%0 = PACK(%0.L, %0.H); \n\t"
- : "+d"(x), "=&d"(tmp));
-#else
- x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);
- x= (x>>16) | (x<<16);
-#endif
- return x;