comparison libmpcodecs/vf_ilpack.c @ 28290:25337a2147e7

Lots and lots of #ifdef ARCH_... -> #if ARCH_... and #ifdef HAVE_MMX etc -> #if HAVE_MMX. There might be still more that need to be fixed.
author reimar
date Fri, 16 Jan 2009 09:21:21 +0000
parents 08d18fe9da52
children 963f578121c6
comparison
equal deleted inserted replaced
28289:4210f3621db1 28290:25337a2147e7
55 *dst++ = (3*v[vs+vs] + 5*v[0])>>3; 55 *dst++ = (3*v[vs+vs] + 5*v[0])>>3;
56 u++; v++; 56 u++; v++;
57 } 57 }
58 } 58 }
59 59
60 #ifdef HAVE_MMX 60 #if HAVE_MMX
61 static void pack_nn_MMX(unsigned char *dst, unsigned char *y, 61 static void pack_nn_MMX(unsigned char *dst, unsigned char *y,
62 unsigned char *u, unsigned char *v, int w) 62 unsigned char *u, unsigned char *v, int w)
63 { 63 {
64 __asm__ volatile ("" 64 __asm__ volatile (""
65 ASMALIGN(4) 65 ASMALIGN(4)
91 static void pack_li_0_MMX(unsigned char *dst, unsigned char *y, 91 static void pack_li_0_MMX(unsigned char *dst, unsigned char *y,
92 unsigned char *u, unsigned char *v, int w, int us, int vs) 92 unsigned char *u, unsigned char *v, int w, int us, int vs)
93 { 93 {
94 __asm__ volatile ("" 94 __asm__ volatile (""
95 "push %%"REG_BP" \n\t" 95 "push %%"REG_BP" \n\t"
96 #ifdef ARCH_X86_64 96 #if ARCH_X86_64
97 "mov %6, %%"REG_BP" \n\t" 97 "mov %6, %%"REG_BP" \n\t"
98 #else 98 #else
99 "movl 4(%%"REG_d"), %%"REG_BP" \n\t" 99 "movl 4(%%"REG_d"), %%"REG_BP" \n\t"
100 "movl (%%"REG_d"), %%"REG_d" \n\t" 100 "movl (%%"REG_d"), %%"REG_d" \n\t"
101 #endif 101 #endif
184 "jnz .Lli0 \n\t" 184 "jnz .Lli0 \n\t"
185 "emms \n\t" 185 "emms \n\t"
186 "pop %%"REG_BP" \n\t" 186 "pop %%"REG_BP" \n\t"
187 : 187 :
188 : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16), 188 : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16),
189 #ifdef ARCH_X86_64 189 #if ARCH_X86_64
190 "d" ((long)us), "r" ((long)vs) 190 "d" ((long)us), "r" ((long)vs)
191 #else 191 #else
192 "d" (&us) 192 "d" (&us)
193 #endif 193 #endif
194 : "memory" 194 : "memory"
199 static void pack_li_1_MMX(unsigned char *dst, unsigned char *y, 199 static void pack_li_1_MMX(unsigned char *dst, unsigned char *y,
200 unsigned char *u, unsigned char *v, int w, int us, int vs) 200 unsigned char *u, unsigned char *v, int w, int us, int vs)
201 { 201 {
202 __asm__ volatile ("" 202 __asm__ volatile (""
203 "push %%"REG_BP" \n\t" 203 "push %%"REG_BP" \n\t"
204 #ifdef ARCH_X86_64 204 #if ARCH_X86_64
205 "mov %6, %%"REG_BP" \n\t" 205 "mov %6, %%"REG_BP" \n\t"
206 #else 206 #else
207 "movl 4(%%"REG_d"), %%"REG_BP" \n\t" 207 "movl 4(%%"REG_d"), %%"REG_BP" \n\t"
208 "movl (%%"REG_d"), %%"REG_d" \n\t" 208 "movl (%%"REG_d"), %%"REG_d" \n\t"
209 #endif 209 #endif
296 "jnz .Lli1 \n\t" 296 "jnz .Lli1 \n\t"
297 "emms \n\t" 297 "emms \n\t"
298 "pop %%"REG_BP" \n\t" 298 "pop %%"REG_BP" \n\t"
299 : 299 :
300 : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16), 300 : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16),
301 #ifdef ARCH_X86_64 301 #if ARCH_X86_64
302 "d" ((long)us), "r" ((long)vs) 302 "d" ((long)us), "r" ((long)vs)
303 #else 303 #else
304 "d" (&us) 304 "d" (&us)
305 #endif 305 #endif
306 : "memory" 306 : "memory"
394 if (args) sscanf(args, "%d", &vf->priv->mode); 394 if (args) sscanf(args, "%d", &vf->priv->mode);
395 395
396 pack_nn = (pack_func_t *)pack_nn_C; 396 pack_nn = (pack_func_t *)pack_nn_C;
397 pack_li_0 = pack_li_0_C; 397 pack_li_0 = pack_li_0_C;
398 pack_li_1 = pack_li_1_C; 398 pack_li_1 = pack_li_1_C;
399 #ifdef HAVE_MMX 399 #if HAVE_MMX
400 if(gCpuCaps.hasMMX) { 400 if(gCpuCaps.hasMMX) {
401 pack_nn = (pack_func_t *)pack_nn_MMX; 401 pack_nn = (pack_func_t *)pack_nn_MMX;
402 pack_li_0 = pack_li_0_MMX; 402 pack_li_0 = pack_li_0_MMX;
403 pack_li_1 = pack_li_1_MMX; 403 pack_li_1 = pack_li_1_MMX;
404 } 404 }