Mercurial > sdl-ios-xcode
changeset 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 | 6e41f5d80198 |
children | af4d584e0edb |
files | include/SDL_endian.h src/video/SDL_blit.c |
diffstat | 2 files changed, 14 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/include/SDL_endian.h Sat Feb 03 08:17:12 2007 +0000 +++ b/include/SDL_endian.h Mon Feb 05 06:44:51 2007 +0000 @@ -56,7 +56,7 @@ header should only be included in files that actually use them. */ #if defined(__GNUC__) && defined(__i386__) && \ - !(__GNUC__ == 2 && __GNUC_MINOR__ == 95 /* broken gcc version */) + !(__GNUC__ == 2 && __GNUC_MINOR__ <= 95 /* broken gcc version */) static __inline__ Uint16 SDL_Swap16(Uint16 x) { __asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x)); @@ -88,7 +88,8 @@ } #endif -#if defined(__GNUC__) && defined(__i386__) +#if defined(__GNUC__) && defined(__i386__) && \ + !(__GNUC__ == 2 && __GNUC_MINOR__ <= 95 /* broken gcc version */) static __inline__ Uint32 SDL_Swap32(Uint32 x) { __asm__("bswap %0" : "=r" (x) : "0" (x)); @@ -123,7 +124,8 @@ #endif #ifdef SDL_HAS_64BIT_TYPE -#if defined(__GNUC__) && defined(__i386__) +#if defined(__GNUC__) && defined(__i386__) && \ + !(__GNUC__ == 2 && __GNUC_MINOR__ <= 95 /* broken gcc version */) static __inline__ Uint64 SDL_Swap64(Uint64 x) { union {
--- a/src/video/SDL_blit.c Sat Feb 03 08:17:12 2007 +0000 +++ b/src/video/SDL_blit.c Mon Feb 05 06:44:51 2007 +0000 @@ -29,6 +29,9 @@ #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) && SDL_ASSEMBLY_ROUTINES #define MMX_ASMBLIT +#if (__GNUC__ > 2) /* SSE instructions aren't in GCC 2. */ +#define SSE_ASMBLIT +#endif #endif #if defined(MMX_ASMBLIT) @@ -122,6 +125,7 @@ SDL_memcpy(to, from, len&7); } +#ifdef SSE_ASMBLIT static __inline__ void SDL_memcpySSE(Uint8 *to, const Uint8 *from, int len) { int i; @@ -146,6 +150,7 @@ SDL_memcpy(to, from, len&7); } #endif +#endif static void SDL_BlitCopy(SDL_BlitInfo *info) { @@ -159,7 +164,8 @@ dst = info->d_pixels; srcskip = w+info->s_skip; dstskip = w+info->d_skip; -#ifdef MMX_ASMBLIT + +#ifdef SSE_ASMBLIT if(SDL_HasSSE()) { while ( h-- ) { @@ -172,6 +178,8 @@ ::); } else +#endif +#ifdef MMX_ASMBLIT if(SDL_HasMMX()) { while ( h-- ) {