Skip to content

Commit

Permalink
Patched to compile on BeOS and old, old GCC releases.
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Feb 5, 2007
1 parent b123ea4 commit a236082
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
8 changes: 5 additions & 3 deletions include/SDL_endian.h
Expand Up @@ -56,7 +56,7 @@ extern "C" {
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));
Expand Down Expand Up @@ -88,7 +88,8 @@ static __inline__ Uint16 SDL_Swap16(Uint16 x) {
}
#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));
Expand Down Expand Up @@ -123,7 +124,8 @@ static __inline__ Uint32 SDL_Swap32(Uint32 x) {
#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 {
Expand Down
10 changes: 9 additions & 1 deletion src/video/SDL_blit.c
Expand Up @@ -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)
Expand Down Expand Up @@ -122,6 +125,7 @@ static __inline__ void SDL_memcpyMMX(Uint8 *to, const Uint8 *from, int len)
SDL_memcpy(to, from, len&7);
}

#ifdef SSE_ASMBLIT
static __inline__ void SDL_memcpySSE(Uint8 *to, const Uint8 *from, int len)
{
int i;
Expand All @@ -146,6 +150,7 @@ static __inline__ void SDL_memcpySSE(Uint8 *to, const Uint8 *from, int len)
SDL_memcpy(to, from, len&7);
}
#endif
#endif

static void SDL_BlitCopy(SDL_BlitInfo *info)
{
Expand All @@ -159,7 +164,8 @@ static void SDL_BlitCopy(SDL_BlitInfo *info)
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-- ) {
Expand All @@ -172,6 +178,8 @@ static void SDL_BlitCopy(SDL_BlitInfo *info)
::);
}
else
#endif
#ifdef MMX_ASMBLIT
if(SDL_HasMMX())
{
while ( h-- ) {
Expand Down

0 comments on commit a236082

Please sign in to comment.