From ea66f252a8fa92dcb0efb54c805071e91e149e13 Mon Sep 17 00:00:00 2001 From: Måns Rullgård Date: Tue, 15 Jul 2008 19:05:49 +0000 Subject: ARM: ARMv6 optimised bswap_16/32 Originally committed as revision 14239 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/bswap.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libavutil/bswap.h') diff --git a/libavutil/bswap.h b/libavutil/bswap.h index b35fb51613..e1aa3f433e 100644 --- a/libavutil/bswap.h +++ b/libavutil/bswap.h @@ -40,6 +40,8 @@ static av_always_inline av_const uint16_t bswap_16(uint16_t x) asm("rorw $8, %0" : "+r"(x)); #elif defined(ARCH_SH4) asm("swap.b %0,%0" : "=r"(x) : "0"(x)); +#elif defined(HAVE_ARMV6) + asm("rev16 %0, %0" : "+r"(x)); #else x= (x>>8) | (x<<8); #endif @@ -62,6 +64,8 @@ static av_always_inline av_const uint32_t bswap_32(uint32_t x) "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_ARM) uint32_t t; asm ("eor %1, %0, %0, ror #16 \n\t" -- cgit v1.2.3