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 }