# HG changeset patch # User mru # Date 1236288010 0 # Node ID d27f2ec2810b48a906ac27f7437d997ae668775a # Parent 8537f54fa70449b6184c11464e24b12a5f692297 ARM: armcc versions of bswap_16/32 diff -r 8537f54fa704 -r d27f2ec2810b arm/bswap.h --- a/arm/bswap.h Fri Feb 27 08:12:41 2009 +0000 +++ b/arm/bswap.h Thu Mar 05 21:20:10 2009 +0000 @@ -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 @@ return x; } +#endif /* __ARMCC_VERSION */ + #endif /* AVUTIL_ARM_BSWAP_H */