diff options
Diffstat (limited to 'src/tools/asm/cmdlib.c')
-rw-r--r-- | src/tools/asm/cmdlib.c | 101 |
1 files changed, 10 insertions, 91 deletions
diff --git a/src/tools/asm/cmdlib.c b/src/tools/asm/cmdlib.c index 69ce3ffd..ac088675 100644 --- a/src/tools/asm/cmdlib.c +++ b/src/tools/asm/cmdlib.c @@ -976,13 +976,7 @@ int ParseNum (const char *str) ============================================================================ */ -#ifdef _SGI_SOURCE -#define __BIG_ENDIAN__ -#endif - -#ifdef __BIG_ENDIAN__ - -short LittleShort (short l) +short ShortSwap (short l) { byte b1,b2; @@ -992,13 +986,7 @@ short LittleShort (short l) return (b1<<8) + b2; } -short BigShort (short l) -{ - return l; -} - - -int LittleLong (int l) +int LongSwap (int l) { byte b1,b2,b3,b4; @@ -1010,89 +998,20 @@ int LittleLong (int l) return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4; } -int BigLong (int l) -{ - return l; -} - - -float LittleFloat (float l) -{ - union {byte b[4]; float f;} in, out; - - in.f = l; - out.b[0] = in.b[3]; - out.b[1] = in.b[2]; - out.b[2] = in.b[1]; - out.b[3] = in.b[0]; - - return out.f; -} - -float BigFloat (float l) -{ - return l; -} - - -#else - - -short BigShort (short l) -{ - byte b1,b2; - - b1 = l&255; - b2 = (l>>8)&255; - - return (b1<<8) + b2; -} - -short LittleShort (short l) -{ - return l; -} +typedef union { + float f; + unsigned int i; +} _FloatByteUnion; +float FloatSwap (const float *f) { + _FloatByteUnion out; -int BigLong (int l) -{ - byte b1,b2,b3,b4; + out.f = *f; + out.i = LongSwap(out.i); - b1 = l&255; - b2 = (l>>8)&255; - b3 = (l>>16)&255; - b4 = (l>>24)&255; - - return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4; -} - -int LittleLong (int l) -{ - return l; -} - -float BigFloat (float l) -{ - union {byte b[4]; float f;} in, out; - - in.f = l; - out.b[0] = in.b[3]; - out.b[1] = in.b[2]; - out.b[2] = in.b[1]; - out.b[3] = in.b[0]; - return out.f; } -float LittleFloat (float l) -{ - return l; -} - - -#endif - - //======================================================= |