diff options
Diffstat (limited to 'source/q_shared.h')
-rw-r--r-- | source/q_shared.h | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/source/q_shared.h b/source/q_shared.h index 0cdb97c..541b046 100644 --- a/source/q_shared.h +++ b/source/q_shared.h @@ -474,23 +474,14 @@ char *va( const char *format, ... ) q_printf( 1, 2 ); //============================================= static inline uint16_t ShortSwap( uint16_t s ) { - byte b1, b2; - - b1 = s & 255; - b2 = ( s >> 8 ) & 255; - - return ( b1 << 8 ) | b2; + s = ( s >> 8 ) | ( s << 8 ); + return s; } static inline uint32_t LongSwap( uint32_t l ) { - byte b1, b2, b3, b4; - - b1 = l & 255; - b2 = ( l >> 8 ) & 255; - b3 = ( l >> 16 ) & 255; - b4 = ( l >> 24 ) & 255; - - return ( b1 << 24 ) | ( b2 << 16 ) | ( b3 << 8 ) | b4; + l = ( ( l >> 8 ) & 0x00ff00ff ) | ( ( l << 8 ) & 0xff00ff00 ); + l = ( l >> 16 ) | ( l << 16 ); + return l; } static inline float FloatSwap( float f ) { @@ -511,8 +502,8 @@ static inline float FloatSwap( float f ) { #define LittleShort(x) ((uint16_t)(x)) #define LittleLong(x) ((uint32_t)(x)) #define LittleFloat(x) ((float)(x)) -#define MakeLong(b1,b2,b3,b4) (((b4)<<24)|((b3)<<16)|((b2)<<8)|(b1)) -#define MakeShort(b1,b2) (((b2)<<8)|(b1)) +#define MakeRawLong(b1,b2,b3,b4) (((b4)<<24)|((b3)<<16)|((b2)<<8)|(b1)) +#define MakeRawShort(b1,b2) (((b2)<<8)|(b1)) #elif __BYTE_ORDER == __BIG_ENDIAN #define BigShort(x) ((uint16_t)(x)) #define BigLong(x) ((uint32_t)(x)) @@ -520,12 +511,18 @@ static inline float FloatSwap( float f ) { #define LittleShort ShortSwap #define LittleLong LongSwap #define LittleFloat FloatSwap -#define MakeLong(b1,b2,b3,b4) (((b1)<<24)|((b2)<<16)|((b3)<<8)|(b4)) -#define MakeShort(b1,b2) (((b1)<<8)|(b2)) +#define MakeRawLong(b1,b2,b3,b4) (((b1)<<24)|((b2)<<16)|((b3)<<8)|(b4)) +#define MakeRawShort(b1,b2) (((b1)<<8)|(b2)) #else #error Unknown byte order #endif +#define LittleLongMem(p) (((p)[3]<<24)|((p)[2]<<16)|((p)[1]<<8)|(p)[0]) +#define LittleShortMem(p) (((p)[1]<<8)|(p)[0]) + +#define RawLongMem(p) MakeRawLong((p)[0],(p)[1],(p)[2],(p)[3]) +#define RawShortMem(p) MakeRawShort((p)[0],(p)[1]) + #define LittleVector(a,b) \ ((b)[0]=LittleFloat((a)[0]),\ (b)[1]=LittleFloat((a)[1]),\ |