From 3662d880ed9fdc3aa952f174f620f53d1fc1f789 Mon Sep 17 00:00:00 2001 From: Måns Rullgård Date: Tue, 18 Mar 2008 22:28:33 +0000 Subject: 32/64-bit agnostic x86 bswap Originally committed as revision 12496 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/bswap.h | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/libavutil/bswap.h b/libavutil/bswap.h index e78c981b02..64ac5d2384 100644 --- a/libavutil/bswap.h +++ b/libavutil/bswap.h @@ -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 @@ static av_always_inline uint32_t bswap_32(uint32_t x) { #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" -- cgit v1.2.3