# HG changeset patch # User mru # Date 1205879313 0 # Node ID c4ce55ea2c0400134f202564628c220862be32b6 # Parent 03dc0e368af7a0d8d2cd530bb6ca6e3d7521478d 32/64-bit agnostic x86 bswap diff -r 03dc0e368af7 -r c4ce55ea2c04 bswap.h --- a/bswap.h Tue Mar 18 20:52:37 2008 +0000 +++ b/bswap.h Tue Mar 18 22:28:33 2008 +0000 @@ -34,16 +34,10 @@ #include #else -#ifdef ARCH_X86_64 -# define LEGACY_REGS "=Q" -#else -# define LEGACY_REGS "=q" -#endif - static av_always_inline uint16_t bswap_16(uint16_t x) { #if defined(ARCH_X86) - asm("rorw $8, %0" : LEGACY_REGS (x) : "0" (x)); + asm("rorw $8, %0" : "+r"(x)); #elif defined(ARCH_SH4) asm("swap.b %0,%0" : "=r"(x) : "0"(x)); #else @@ -56,15 +50,13 @@ { #if defined(ARCH_X86) #ifdef HAVE_BSWAP - asm("bswap %0": - "=r" (x) : + asm("bswap %0" : "+r" (x)); #else - asm("xchgb %b0,%h0\n" - "rorl $16,%0 \n" - "xchgb %b0,%h0": - LEGACY_REGS (x) : + asm("rorw $8, %w0 \n\t" + "rorl $16, %0 \n\t" + "rorw $8, %w0" + : "+r"(x)); #endif - "0" (x)); #elif defined(ARCH_SH4) asm("swap.b %0,%0\n" "swap.w %0,%0\n"