From 1e65f62e2b15f087e14d62f567266994f1a9ec59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5ns=20Rullg=C3=A5rd?= Date: Thu, 5 Mar 2009 21:20:10 +0000 Subject: [PATCH] ARM: armcc versions of bswap_16/32 Originally committed as revision 17830 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/arm/bswap.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/libavutil/arm/bswap.h b/libavutil/arm/bswap.h index 65c73c5ccb..d19f972329 100644 --- a/libavutil/arm/bswap.h +++ b/libavutil/arm/bswap.h @@ -23,6 +23,25 @@ #include "config.h" #include "libavutil/common.h" +#ifdef __ARMCC_VERSION + +#if HAVE_ARMV6 +#define bswap_16 bswap_16 +static av_always_inline av_const uint16_t bswap_16(uint16_t x) +{ + __asm { rev16 x, x } + return x; +} + +#define bswap_32 bswap_32 +static av_always_inline av_const uint32_t bswap_32(uint32_t x) +{ + return __rev(x); +} +#endif /* HAVE_ARMV6 */ + +#else /* __ARMCC_VERSION */ + #if HAVE_ARMV6 #define bswap_16 bswap_16 static av_always_inline av_const uint16_t bswap_16(uint16_t x) @@ -48,4 +67,6 @@ static av_always_inline av_const uint32_t bswap_32(uint32_t x) return x; } +#endif /* __ARMCC_VERSION */ + #endif /* AVUTIL_ARM_BSWAP_H */