Mercurial > sdl-ios-xcode
annotate test/testendian.c @ 1230:88c2d6aed428
From Mike Frysinger and/or Gentoo:
- libsdl-PIC-load-mmx-masks-from-stack.patch
this one may be a little controversial ... the fix here is again that you cant
reference the memory addresses like this to load into a mmx register, so the
way to do it is to push two 32bit words onto the stack, load the 64bit value
off of the stack into the mmx register, and then adjust the stack so that
it's back to normal.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Thu, 05 Jan 2006 15:25:19 +0000 |
parents | c203b4a42701 |
children | 983df4f9c1c6 |
rev | line source |
---|---|
850
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 /* Test program to check SDL's CPU endian detection and byte swapping routines */ |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
3 |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 #include <stdio.h> |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
5 |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
6 #include "SDL.h" |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
7 #include "SDL_endian.h" |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
8 |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 int main(int argc, char *argv[]) |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 { |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
11 Uint16 value16 = 0xCDAB; |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 Uint32 value32 = 0xEFBEADDE; |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
13 #if defined(__GNUC__) && defined(SDL_HAS_64BIT_TYPE) |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 Uint64 value64 = 0xEFBEADDECDAB3412LL; |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
15 #endif |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
16 |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
17 printf("This is a %s endian machine.\n", |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
18 (SDL_BYTEORDER == SDL_LIL_ENDIAN) ? "little" : "big"); |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
19 printf("Value 16 = 0x%X, swapped = 0x%X\n", value16, SDL_Swap16(value16)); |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
20 printf("Value 32 = 0x%X, swapped = 0x%X\n", value32, SDL_Swap32(value32)); |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 #if defined(__GNUC__) && defined(SDL_HAS_64BIT_TYPE) |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
22 printf("Value 64 = 0x%llX, swapped = 0x%llX\n", value64, SDL_Swap64(value64)); |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 #endif |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
24 return(0); |
c203b4a42701
Added an endian detection and byte swapping test program
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
25 } |