comparison libvo/aclib.c @ 13720:821f464b4d90

adapting existing mmx/mmx2/sse/3dnow optimizations so they work on x86_64
author aurel
date Thu, 21 Oct 2004 11:55:20 +0000
parents ac3fd2ff2561
children e047e70a9767
comparison
equal deleted inserted replaced
13719:43ecd6a73ec0 13720:821f464b4d90
15 #define BLOCK_SIZE 4096 15 #define BLOCK_SIZE 4096
16 #define CONFUSION_FACTOR 0 16 #define CONFUSION_FACTOR 0
17 //Feel free to fine-tune the above 2, it might be possible to get some speedup with them :) 17 //Feel free to fine-tune the above 2, it might be possible to get some speedup with them :)
18 18
19 //#define STATISTICS 19 //#define STATISTICS
20 #ifdef ARCH_X86 20 #if defined(ARCH_X86) || defined(ARCH_X86_64)
21 #define CAN_COMPILE_X86_ASM 21 #define CAN_COMPILE_X86_ASM
22 #endif 22 #endif
23 23
24 //Note: we have MMX, MMX2, 3DNOW version there is no 3DNOW+MMX2 one 24 //Note: we have MMX, MMX2, 3DNOW version there is no 3DNOW+MMX2 one
25 //Plain C versions 25 //Plain C versions
48 #undef HAVE_MMX 48 #undef HAVE_MMX
49 #undef HAVE_MMX2 49 #undef HAVE_MMX2
50 #undef HAVE_3DNOW 50 #undef HAVE_3DNOW
51 #undef HAVE_SSE 51 #undef HAVE_SSE
52 #undef HAVE_SSE2 52 #undef HAVE_SSE2
53 #undef ARCH_X86
54 /* 53 /*
55 #ifdef COMPILE_C 54 #ifdef COMPILE_C
56 #undef HAVE_MMX 55 #undef HAVE_MMX
57 #undef HAVE_MMX2 56 #undef HAVE_MMX2
58 #undef HAVE_3DNOW 57 #undef HAVE_3DNOW
67 #define HAVE_MMX 66 #define HAVE_MMX
68 #undef HAVE_MMX2 67 #undef HAVE_MMX2
69 #undef HAVE_3DNOW 68 #undef HAVE_3DNOW
70 #undef HAVE_SSE 69 #undef HAVE_SSE
71 #undef HAVE_SSE2 70 #undef HAVE_SSE2
72 #define ARCH_X86
73 #define RENAME(a) a ## _MMX 71 #define RENAME(a) a ## _MMX
74 #include "aclib_template.c" 72 #include "aclib_template.c"
75 #endif 73 #endif
76 74
77 //MMX2 versions 75 //MMX2 versions
80 #define HAVE_MMX 78 #define HAVE_MMX
81 #define HAVE_MMX2 79 #define HAVE_MMX2
82 #undef HAVE_3DNOW 80 #undef HAVE_3DNOW
83 #undef HAVE_SSE 81 #undef HAVE_SSE
84 #undef HAVE_SSE2 82 #undef HAVE_SSE2
85 #define ARCH_X86
86 #define RENAME(a) a ## _MMX2 83 #define RENAME(a) a ## _MMX2
87 #include "aclib_template.c" 84 #include "aclib_template.c"
88 #endif 85 #endif
89 86
90 //3DNOW versions 87 //3DNOW versions
93 #define HAVE_MMX 90 #define HAVE_MMX
94 #undef HAVE_MMX2 91 #undef HAVE_MMX2
95 #define HAVE_3DNOW 92 #define HAVE_3DNOW
96 #undef HAVE_SSE 93 #undef HAVE_SSE
97 #undef HAVE_SSE2 94 #undef HAVE_SSE2
98 #define ARCH_X86
99 #define RENAME(a) a ## _3DNow 95 #define RENAME(a) a ## _3DNow
100 #include "aclib_template.c" 96 #include "aclib_template.c"
101 #endif 97 #endif
102 98
103 //SSE versions (only used on SSE2 cpus) 99 //SSE versions (only used on SSE2 cpus)
106 #define HAVE_MMX 102 #define HAVE_MMX
107 #define HAVE_MMX2 103 #define HAVE_MMX2
108 #undef HAVE_3DNOW 104 #undef HAVE_3DNOW
109 #define HAVE_SSE 105 #define HAVE_SSE
110 #define HAVE_SSE2 106 #define HAVE_SSE2
111 #define ARCH_X86
112 #define RENAME(a) a ## _SSE 107 #define RENAME(a) a ## _SSE
113 #include "aclib_template.c" 108 #include "aclib_template.c"
114 #endif 109 #endif
115 110
116 #endif // CAN_COMPILE_X86_ASM 111 #endif // CAN_COMPILE_X86_ASM