From 175e882df164b9aba882570c93c477647ae4c650 Mon Sep 17 00:00:00 2001 From: cxl Date: Sun, 18 Jan 2015 17:56:28 +0000 Subject: [PATCH] Core: ARMv7 endian swap fixed git-svn-id: svn://ultimatepp.org/upp/trunk@8060 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/Defs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uppsrc/Core/Defs.h b/uppsrc/Core/Defs.h index e748ea0e6..1626d7a78 100644 --- a/uppsrc/Core/Defs.h +++ b/uppsrc/Core/Defs.h @@ -662,8 +662,8 @@ inline void EndianSwap(int& v) { v = SwapEndian32(v); } inline dword SwapEndian32(dword v) { return __builtin_bswap32(v); } inline int SwapEndian32(int v) { return __builtin_bswap32(v); } -inline word SwapEndian16(word v) { return SwapEndian32(v) << 16; } // GCC bug workaround -inline int16 SwapEndian16(int16 v) { return SwapEndian32(v) << 16; } +inline word SwapEndian16(word v) { return SwapEndian32(v) >> 16; } // GCC bug workaround +inline int16 SwapEndian16(int16 v) { return SwapEndian32(v) >> 16; } inline void EndianSwap(word& v) { v = SwapEndian16(v); } inline void EndianSwap(int16& v) { v = SwapEndian16(v); }