diff options
Diffstat (limited to 'libvo/aclib.c')
-rw-r--r-- | libvo/aclib.c | 79 |
1 files changed, 56 insertions, 23 deletions
diff --git a/libvo/aclib.c b/libvo/aclib.c index 68548f579e..ca06b84ad5 100644 --- a/libvo/aclib.c +++ b/libvo/aclib.c @@ -18,7 +18,7 @@ //Feel free to fine-tune the above 2, it might be possible to get some speedup with them :) //#define STATISTICS -#ifdef ARCH_X86 +#if ARCH_X86 #define CAN_COMPILE_X86_ASM #endif @@ -30,19 +30,19 @@ #ifdef CAN_COMPILE_X86_ASM -#if (defined (HAVE_MMX) && !defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT) +#if (HAVE_MMX && !HAVE_3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT) #define COMPILE_MMX #endif -#if (defined (HAVE_MMX2) && !defined (HAVE_SSE2)) || defined (RUNTIME_CPUDETECT) +#if (HAVE_MMX2 && !HAVE_SSE2) || defined (RUNTIME_CPUDETECT) #define COMPILE_MMX2 #endif -#if (defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT) +#if (HAVE_3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT) #define COMPILE_3DNOW #endif -#if defined (HAVE_SSE2) || defined (RUNTIME_CPUDETECT) +#if HAVE_SSE2 || defined (RUNTIME_CPUDETECT) #define COMPILE_SSE #endif @@ -51,12 +51,23 @@ #undef HAVE_3DNOW #undef HAVE_SSE #undef HAVE_SSE2 +#define HAVE_MMX 0 +#define HAVE_MMX2 0 +#define HAVE_3DNOW 0 +#define HAVE_SSE 0 +#define HAVE_SSE2 0 /* #ifdef COMPILE_C #undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_3DNOW -#undef ARCH_X86 +#undef HAVE_SSE +#undef HAVE_SSE2 +#define HAVE_MMX 0 +#define HAVE_MMX2 0 +#define HAVE_3DNOW 0 +#define HAVE_SSE 0 +#define HAVE_SSE2 0 #define RENAME(a) a ## _C #include "aclib_template.c" #endif @@ -64,11 +75,16 @@ //MMX versions #ifdef COMPILE_MMX #undef RENAME -#define HAVE_MMX +#undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_3DNOW #undef HAVE_SSE #undef HAVE_SSE2 +#define HAVE_MMX 1 +#define HAVE_MMX2 0 +#define HAVE_3DNOW 0 +#define HAVE_SSE 0 +#define HAVE_SSE2 0 #define RENAME(a) a ## _MMX #include "aclib_template.c" #endif @@ -76,11 +92,18 @@ //MMX2 versions #ifdef COMPILE_MMX2 #undef RENAME -#define HAVE_MMX -#define HAVE_MMX2 +#undef HAVE_MMX +#undef HAVE_MMX2 #undef HAVE_3DNOW #undef HAVE_SSE #undef HAVE_SSE2 +#define HAVE_MMX 1 +#define HAVE_MMX2 1 +#define HAVE_3DNOW 0 +#define HAVE_SSE 0 +#define HAVE_SSE2 0 +#define HAVE_MMX +#define HAVE_MMX2 #define RENAME(a) a ## _MMX2 #include "aclib_template.c" #endif @@ -88,11 +111,16 @@ //3DNOW versions #ifdef COMPILE_3DNOW #undef RENAME -#define HAVE_MMX +#undef HAVE_MMX #undef HAVE_MMX2 -#define HAVE_3DNOW +#undef HAVE_3DNOW #undef HAVE_SSE #undef HAVE_SSE2 +#define HAVE_MMX 1 +#define HAVE_MMX2 0 +#define HAVE_3DNOW 1 +#define HAVE_SSE 0 +#define HAVE_SSE2 0 #define RENAME(a) a ## _3DNow #include "aclib_template.c" #endif @@ -100,11 +128,16 @@ //SSE versions (only used on SSE2 cpus) #ifdef COMPILE_SSE #undef RENAME -#define HAVE_MMX -#define HAVE_MMX2 +#undef HAVE_MMX +#undef HAVE_MMX2 #undef HAVE_3DNOW -#define HAVE_SSE -#define HAVE_SSE2 +#undef HAVE_SSE +#undef HAVE_SSE2 +#define HAVE_MMX 1 +#define HAVE_MMX2 1 +#define HAVE_3DNOW 0 +#define HAVE_SSE 1 +#define HAVE_SSE2 1 #define RENAME(a) a ## _SSE #include "aclib_template.c" #endif @@ -130,13 +163,13 @@ void * fast_memcpy(void * to, const void * from, size_t len) #endif //CAN_COMPILE_X86_ASM memcpy(to, from, len); // prior to mmx we use the standart memcpy #else -#ifdef HAVE_SSE2 +#if HAVE_SSE2 fast_memcpy_SSE(to, from, len); -#elif defined (HAVE_MMX2) +#elif HAVE_MMX2 fast_memcpy_MMX2(to, from, len); -#elif defined (HAVE_3DNOW) +#elif HAVE_3DNOW fast_memcpy_3DNow(to, from, len); -#elif defined (HAVE_MMX) +#elif HAVE_MMX fast_memcpy_MMX(to, from, len); #else memcpy(to, from, len); // prior to mmx we use the standart memcpy @@ -164,13 +197,13 @@ void * mem2agpcpy(void * to, const void * from, size_t len) #endif //CAN_COMPILE_X86_ASM memcpy(to, from, len); // prior to mmx we use the standart memcpy #else -#ifdef HAVE_SSE2 +#if HAVE_SSE2 mem2agpcpy_SSE(to, from, len); -#elif defined (HAVE_MMX2) +#elif HAVE_MMX2 mem2agpcpy_MMX2(to, from, len); -#elif defined (HAVE_3DNOW) +#elif HAVE_3DNOW mem2agpcpy_3DNow(to, from, len); -#elif defined (HAVE_MMX) +#elif HAVE_MMX mem2agpcpy_MMX(to, from, len); #else memcpy(to, from, len); // prior to mmx we use the standart memcpy |