diff --git a/include/SDL_endian.h b/include/SDL_endian.h index ae8fc60e6..949a00661 100644 --- a/include/SDL_endian.h +++ b/include/SDL_endian.h @@ -112,6 +112,9 @@ extern "C" { #if HAS_BUILTIN_BSWAP16 #define SDL_Swap16(x) __builtin_bswap16(x) +#elif defined(_MSC_VER) +#pragma intrinsic(_byteswap_ushort) +#define SDL_Swap16(x) _byteswap_ushort(x) #elif defined(__i386__) && !HAS_BROKEN_BSWAP SDL_FORCE_INLINE Uint16 SDL_Swap16(Uint16 x) @@ -149,9 +152,6 @@ SDL_Swap16(Uint16 x) __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc"); return x; } -#elif defined(_MSC_VER) -#pragma intrinsic(_byteswap_ushort) -#define SDL_Swap16(x) _byteswap_ushort(x) #elif defined(__WATCOMC__) && defined(__386__) extern _inline Uint16 SDL_Swap16(Uint16); #pragma aux SDL_Swap16 = \ @@ -168,6 +168,9 @@ SDL_Swap16(Uint16 x) #if HAS_BUILTIN_BSWAP32 #define SDL_Swap32(x) __builtin_bswap32(x) +#elif defined(_MSC_VER) +#pragma intrinsic(_byteswap_ulong) +#define SDL_Swap32(x) _byteswap_ulong(x) #elif defined(__i386__) && !HAS_BROKEN_BSWAP SDL_FORCE_INLINE Uint32 SDL_Swap32(Uint32 x) @@ -213,9 +216,6 @@ extern _inline Uint32 SDL_Swap32(Uint32); "bswap eax" \ parm [eax] \ modify [eax]; -#elif defined(_MSC_VER) -#pragma intrinsic(_byteswap_ulong) -#define SDL_Swap32(x) _byteswap_ulong(x) #else SDL_FORCE_INLINE Uint32 SDL_Swap32(Uint32 x) @@ -227,6 +227,9 @@ SDL_Swap32(Uint32 x) #if HAS_BUILTIN_BSWAP64 #define SDL_Swap64(x) __builtin_bswap64(x) +#elif defined(_MSC_VER) +#pragma intrinsic(_byteswap_uint64) +#define SDL_Swap64(x) _byteswap_uint64(x) #elif defined(__i386__) && !HAS_BROKEN_BSWAP SDL_FORCE_INLINE Uint64 SDL_Swap64(Uint64 x) @@ -258,9 +261,6 @@ extern _inline Uint64 SDL_Swap64(Uint64); "xchg eax,edx" \ parm [eax edx] \ modify [eax edx]; -#elif defined(_MSC_VER) -#pragma intrinsic(_byteswap_uint64) -#define SDL_Swap64(x) _byteswap_uint64(x) #else SDL_FORCE_INLINE Uint64 SDL_Swap64(Uint64 x)