comparison include/SDL_endian.h @ 3909:6832b00d3594 SDL-1.2

Patched to compile on BeOS and old, old GCC releases.
author Ryan C. Gordon <icculus@icculus.org>
date Mon, 05 Feb 2007 06:44:51 +0000
parents d45aefcac017
children a1b03ba2fcd0
comparison
equal deleted inserted replaced
3908:6e41f5d80198 3909:6832b00d3594
54 functions for those that do not. Because these functions become 54 functions for those that do not. Because these functions become
55 static for compilers that do not support inline functions, this 55 static for compilers that do not support inline functions, this
56 header should only be included in files that actually use them. 56 header should only be included in files that actually use them.
57 */ 57 */
58 #if defined(__GNUC__) && defined(__i386__) && \ 58 #if defined(__GNUC__) && defined(__i386__) && \
59 !(__GNUC__ == 2 && __GNUC_MINOR__ == 95 /* broken gcc version */) 59 !(__GNUC__ == 2 && __GNUC_MINOR__ <= 95 /* broken gcc version */)
60 static __inline__ Uint16 SDL_Swap16(Uint16 x) 60 static __inline__ Uint16 SDL_Swap16(Uint16 x)
61 { 61 {
62 __asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x)); 62 __asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x));
63 return x; 63 return x;
64 } 64 }
86 static __inline__ Uint16 SDL_Swap16(Uint16 x) { 86 static __inline__ Uint16 SDL_Swap16(Uint16 x) {
87 return((x<<8)|(x>>8)); 87 return((x<<8)|(x>>8));
88 } 88 }
89 #endif 89 #endif
90 90
91 #if defined(__GNUC__) && defined(__i386__) 91 #if defined(__GNUC__) && defined(__i386__) && \
92 !(__GNUC__ == 2 && __GNUC_MINOR__ <= 95 /* broken gcc version */)
92 static __inline__ Uint32 SDL_Swap32(Uint32 x) 93 static __inline__ Uint32 SDL_Swap32(Uint32 x)
93 { 94 {
94 __asm__("bswap %0" : "=r" (x) : "0" (x)); 95 __asm__("bswap %0" : "=r" (x) : "0" (x));
95 return x; 96 return x;
96 } 97 }
121 return((x<<24)|((x<<8)&0x00FF0000)|((x>>8)&0x0000FF00)|(x>>24)); 122 return((x<<24)|((x<<8)&0x00FF0000)|((x>>8)&0x0000FF00)|(x>>24));
122 } 123 }
123 #endif 124 #endif
124 125
125 #ifdef SDL_HAS_64BIT_TYPE 126 #ifdef SDL_HAS_64BIT_TYPE
126 #if defined(__GNUC__) && defined(__i386__) 127 #if defined(__GNUC__) && defined(__i386__) && \
128 !(__GNUC__ == 2 && __GNUC_MINOR__ <= 95 /* broken gcc version */)
127 static __inline__ Uint64 SDL_Swap64(Uint64 x) 129 static __inline__ Uint64 SDL_Swap64(Uint64 x)
128 { 130 {
129 union { 131 union {
130 struct { Uint32 a,b; } s; 132 struct { Uint32 a,b; } s;
131 Uint64 u; 133 Uint64 u;