From 199f92c64d68bae9b3a5011a7266c1efddb7a8e6 Mon Sep 17 00:00:00 2001 From: Romain Beauxis Date: Sun, 27 Jul 2014 23:08:09 -0500 Subject: [PATCH] Use gcc native bswap16 when available.. --- src/bin/wave.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/wave.c b/src/bin/wave.c index 6fe51c7..097a5f5 100644 --- a/src/bin/wave.c +++ b/src/bin/wave.c @@ -168,7 +168,11 @@ unsigned char wave_open(const char *fname, wave_t *wave, shine_config_t *config, } #ifdef SHINE_BIG_ENDIAN -static inline int16_t bswap_16 (int16_t x) { return ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)); } +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) +#define bswap_16(x) __builtin_bswap16(x) +#else +#define bswap_16(x) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) +#endif void swap_buffer(int16_t *sample_buffer, int length) {