From 39d8eae80e4633e2eea04a95d4fd08d191410be2 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Mon, 12 Oct 2009 08:58:12 +0000 Subject: [PATCH] Forcibly disabled MMX mixers. Hopefully fixes Bugzilla #649. --- src/audio/SDL_mixer.c | 6 ++++++ src/audio/SDL_mixer_MMX.c | 3 ++- src/audio/SDL_mixer_MMX.h | 2 ++ src/audio/SDL_mixer_MMX_VC.c | 2 ++ src/audio/SDL_mixer_MMX_VC.h | 2 ++ 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/audio/SDL_mixer.c b/src/audio/SDL_mixer.c index 0304f6224..5a1d7efe8 100644 --- a/src/audio/SDL_mixer.c +++ b/src/audio/SDL_mixer.c @@ -128,6 +128,7 @@ void SDL_MixAudio (Uint8 *dst, const Uint8 *src, Uint32 len, int volume) break; case AUDIO_S8: { +#if defined(SDL_BUGGY_MMX_MIXERS) /* buggy, so we're disabling them. --ryan. */ #if defined(__GNUC__) && defined(__i386__) && defined(SDL_ASSEMBLY_ROUTINES) if (SDL_HasMMX()) { @@ -141,6 +142,8 @@ void SDL_MixAudio (Uint8 *dst, const Uint8 *src, Uint32 len, int volume) } else #endif +#endif + #if defined(__GNUC__) && defined(__M68000__) && defined(SDL_ASSEMBLY_ROUTINES) SDL_MixAudio_m68k_S8((char*)dst,(char*)src,(unsigned long)len,(long)volume); #else @@ -174,6 +177,7 @@ void SDL_MixAudio (Uint8 *dst, const Uint8 *src, Uint32 len, int volume) break; case AUDIO_S16LSB: { +#if defined(SDL_BUGGY_MMX_MIXERS) /* buggy, so we're disabling them. --ryan. */ #if defined(__GNUC__) && defined(__i386__) && defined(SDL_ASSEMBLY_ROUTINES) if (SDL_HasMMX()) { @@ -187,6 +191,8 @@ void SDL_MixAudio (Uint8 *dst, const Uint8 *src, Uint32 len, int volume) } else #endif +#endif + #if defined(__GNUC__) && defined(__M68000__) && defined(SDL_ASSEMBLY_ROUTINES) SDL_MixAudio_m68k_S16LSB((short*)dst,(short*)src,(unsigned long)len,(long)volume); #else diff --git a/src/audio/SDL_mixer_MMX.c b/src/audio/SDL_mixer_MMX.c index 602b0b78c..10b1ccb0c 100644 --- a/src/audio/SDL_mixer_MMX.c +++ b/src/audio/SDL_mixer_MMX.c @@ -35,6 +35,7 @@ * Mixing for 16 bit signed buffers ***********************************************/ +#if defined(SDL_BUGGY_MMX_MIXERS) /* buggy, so we're disabling them. --ryan. */ #if defined(__GNUC__) && defined(__i386__) && defined(SDL_ASSEMBLY_ROUTINES) void SDL_MixAudio_MMX_S16(char* dst,char* src,unsigned int size,int volume) { @@ -203,4 +204,4 @@ void SDL_MixAudio_MMX_S8(char* dst,char* src,unsigned int size,int volume) ); } #endif - +#endif diff --git a/src/audio/SDL_mixer_MMX.h b/src/audio/SDL_mixer_MMX.h index 5a62683b2..836b25959 100644 --- a/src/audio/SDL_mixer_MMX.h +++ b/src/audio/SDL_mixer_MMX.h @@ -8,8 +8,10 @@ */ #include "SDL_config.h" +#if defined(SDL_BUGGY_MMX_MIXERS) /* buggy, so we're disabling them. --ryan. */ #if defined(__GNUC__) && defined(__i386__) && defined(SDL_ASSEMBLY_ROUTINES) void SDL_MixAudio_MMX_S16(char* ,char* ,unsigned int ,int ); void SDL_MixAudio_MMX_S8(char* ,char* ,unsigned int ,int ); #endif +#endif diff --git a/src/audio/SDL_mixer_MMX_VC.c b/src/audio/SDL_mixer_MMX_VC.c index 209753423..e9d53c134 100644 --- a/src/audio/SDL_mixer_MMX_VC.c +++ b/src/audio/SDL_mixer_MMX_VC.c @@ -23,6 +23,7 @@ #include "SDL_mixer_MMX_VC.h" +#if defined(SDL_BUGGY_MMX_MIXERS) /* buggy, so we're disabling them. --ryan. */ #if ((defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__)) && defined(SDL_ASSEMBLY_ROUTINES) // MMX assembler version of SDL_MixAudio for signed little endian 16 bit samples and signed 8 bit samples // Copyright 2002 Stephane Marchesin (stephane.marchesin@wanadoo.fr) @@ -179,3 +180,4 @@ void SDL_MixAudio_MMX_S8_VC(char* dst,char* src,unsigned int nSize,int volume) } #endif /* SDL_ASSEMBLY_ROUTINES */ +#endif /* SDL_BUGGY_MMX_MIXERS */ diff --git a/src/audio/SDL_mixer_MMX_VC.h b/src/audio/SDL_mixer_MMX_VC.h index 9af7a64a0..7c67a36b5 100644 --- a/src/audio/SDL_mixer_MMX_VC.h +++ b/src/audio/SDL_mixer_MMX_VC.h @@ -22,6 +22,7 @@ #include "SDL_config.h" +#if defined(SDL_BUGGY_MMX_MIXERS) /* buggy, so we're disabling them. --ryan. */ #if ((defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__)) && defined(SDL_ASSEMBLY_ROUTINES) /* headers for MMX assembler version of SDL_MixAudio Copyright 2002 Stephane Marchesin (stephane.marchesin@wanadoo.fr) @@ -34,3 +35,4 @@ void SDL_MixAudio_MMX_S16_VC(char* ,char* ,unsigned int ,int ); void SDL_MixAudio_MMX_S8_VC(char* ,char* ,unsigned int ,int ); #endif +#endif