Mercurial > mplayer.hg
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 |