comparison postproc/swscale_template.c @ 6554:5aa2dbf4d300

killing globals
author michael
date Mon, 24 Jun 2002 20:05:53 +0000
parents 5b3cace64e9d
children 3727eb94a783
comparison
equal deleted inserted replaced
6553:d000112bd06e 6554:5aa2dbf4d300
56 #ifdef HAVE_MMX2 56 #ifdef HAVE_MMX2
57 #define MOVNTQ(a,b) "movntq " #a ", " #b " \n\t" 57 #define MOVNTQ(a,b) "movntq " #a ", " #b " \n\t"
58 #else 58 #else
59 #define MOVNTQ(a,b) "movq " #a ", " #b " \n\t" 59 #define MOVNTQ(a,b) "movq " #a ", " #b " \n\t"
60 #endif 60 #endif
61
62 61
63 #define YSCALEYUV2YV12X(x) \ 62 #define YSCALEYUV2YV12X(x) \
64 "xorl %%eax, %%eax \n\t"\ 63 "xorl %%eax, %%eax \n\t"\
65 "pxor %%mm3, %%mm3 \n\t"\ 64 "pxor %%mm3, %%mm3 \n\t"\
66 "pxor %%mm4, %%mm4 \n\t"\ 65 "pxor %%mm4, %%mm4 \n\t"\
237 236
238 #define YSCALEYUV2RGB \ 237 #define YSCALEYUV2RGB \
239 "movd %6, %%mm6 \n\t" /*yalpha1*/\ 238 "movd %6, %%mm6 \n\t" /*yalpha1*/\
240 "punpcklwd %%mm6, %%mm6 \n\t"\ 239 "punpcklwd %%mm6, %%mm6 \n\t"\
241 "punpcklwd %%mm6, %%mm6 \n\t"\ 240 "punpcklwd %%mm6, %%mm6 \n\t"\
242 "movq %%mm6, "MANGLE(asm_yalpha1)"\n\t"\ 241 "movq %%mm6, 3968(%2) \n\t"\
243 "movd %7, %%mm5 \n\t" /*uvalpha1*/\ 242 "movd %7, %%mm5 \n\t" /*uvalpha1*/\
244 "punpcklwd %%mm5, %%mm5 \n\t"\ 243 "punpcklwd %%mm5, %%mm5 \n\t"\
245 "punpcklwd %%mm5, %%mm5 \n\t"\ 244 "punpcklwd %%mm5, %%mm5 \n\t"\
246 "movq %%mm5, "MANGLE(asm_uvalpha1)"\n\t"\ 245 "movq %%mm5, 3976(%2) \n\t"\
247 "xorl %%eax, %%eax \n\t"\ 246 "xorl %%eax, %%eax \n\t"\
248 ".balign 16 \n\t"\ 247 ".balign 16 \n\t"\
249 "1: \n\t"\ 248 "1: \n\t"\
250 "movq (%2, %%eax), %%mm2 \n\t" /* uvbuf0[eax]*/\ 249 "movq (%2, %%eax), %%mm2 \n\t" /* uvbuf0[eax]*/\
251 "movq (%3, %%eax), %%mm3 \n\t" /* uvbuf1[eax]*/\ 250 "movq (%3, %%eax), %%mm3 \n\t" /* uvbuf1[eax]*/\
252 "movq 4096(%2, %%eax), %%mm5 \n\t" /* uvbuf0[eax+2048]*/\ 251 "movq 4096(%2, %%eax), %%mm5 \n\t" /* uvbuf0[eax+2048]*/\
253 "movq 4096(%3, %%eax), %%mm4 \n\t" /* uvbuf1[eax+2048]*/\ 252 "movq 4096(%3, %%eax), %%mm4 \n\t" /* uvbuf1[eax+2048]*/\
254 "psubw %%mm3, %%mm2 \n\t" /* uvbuf0[eax] - uvbuf1[eax]*/\ 253 "psubw %%mm3, %%mm2 \n\t" /* uvbuf0[eax] - uvbuf1[eax]*/\
255 "psubw %%mm4, %%mm5 \n\t" /* uvbuf0[eax+2048] - uvbuf1[eax+2048]*/\ 254 "psubw %%mm4, %%mm5 \n\t" /* uvbuf0[eax+2048] - uvbuf1[eax+2048]*/\
256 "movq "MANGLE(asm_uvalpha1)", %%mm0\n\t"\ 255 "movq 3976(%2), %%mm0 \n\t"\
257 "pmulhw %%mm0, %%mm2 \n\t" /* (uvbuf0[eax] - uvbuf1[eax])uvalpha1>>16*/\ 256 "pmulhw %%mm0, %%mm2 \n\t" /* (uvbuf0[eax] - uvbuf1[eax])uvalpha1>>16*/\
258 "pmulhw %%mm0, %%mm5 \n\t" /* (uvbuf0[eax+2048] - uvbuf1[eax+2048])uvalpha1>>16*/\ 257 "pmulhw %%mm0, %%mm5 \n\t" /* (uvbuf0[eax+2048] - uvbuf1[eax+2048])uvalpha1>>16*/\
259 "psraw $4, %%mm3 \n\t" /* uvbuf0[eax] - uvbuf1[eax] >>4*/\ 258 "psraw $4, %%mm3 \n\t" /* uvbuf0[eax] - uvbuf1[eax] >>4*/\
260 "psraw $4, %%mm4 \n\t" /* uvbuf0[eax+2048] - uvbuf1[eax+2048] >>4*/\ 259 "psraw $4, %%mm4 \n\t" /* uvbuf0[eax+2048] - uvbuf1[eax+2048] >>4*/\
261 "paddw %%mm2, %%mm3 \n\t" /* uvbuf0[eax]uvalpha1 - uvbuf1[eax](1-uvalpha1)*/\ 260 "paddw %%mm2, %%mm3 \n\t" /* uvbuf0[eax]uvalpha1 - uvbuf1[eax](1-uvalpha1)*/\
271 "movq (%1, %%eax, 2), %%mm1 \n\t" /*buf1[eax]*/\ 270 "movq (%1, %%eax, 2), %%mm1 \n\t" /*buf1[eax]*/\
272 "movq 8(%0, %%eax, 2), %%mm6 \n\t" /*buf0[eax]*/\ 271 "movq 8(%0, %%eax, 2), %%mm6 \n\t" /*buf0[eax]*/\
273 "movq 8(%1, %%eax, 2), %%mm7 \n\t" /*buf1[eax]*/\ 272 "movq 8(%1, %%eax, 2), %%mm7 \n\t" /*buf1[eax]*/\
274 "psubw %%mm1, %%mm0 \n\t" /* buf0[eax] - buf1[eax]*/\ 273 "psubw %%mm1, %%mm0 \n\t" /* buf0[eax] - buf1[eax]*/\
275 "psubw %%mm7, %%mm6 \n\t" /* buf0[eax] - buf1[eax]*/\ 274 "psubw %%mm7, %%mm6 \n\t" /* buf0[eax] - buf1[eax]*/\
276 "pmulhw "MANGLE(asm_yalpha1)", %%mm0\n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\ 275 "pmulhw 3968(%2), %%mm0 \n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\
277 "pmulhw "MANGLE(asm_yalpha1)", %%mm6\n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\ 276 "pmulhw 3968(%2), %%mm6 \n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\
278 "psraw $4, %%mm1 \n\t" /* buf0[eax] - buf1[eax] >>4*/\ 277 "psraw $4, %%mm1 \n\t" /* buf0[eax] - buf1[eax] >>4*/\
279 "psraw $4, %%mm7 \n\t" /* buf0[eax] - buf1[eax] >>4*/\ 278 "psraw $4, %%mm7 \n\t" /* buf0[eax] - buf1[eax] >>4*/\
280 "paddw %%mm0, %%mm1 \n\t" /* buf0[eax]yalpha1 + buf1[eax](1-yalpha1) >>16*/\ 279 "paddw %%mm0, %%mm1 \n\t" /* buf0[eax]yalpha1 + buf1[eax](1-yalpha1) >>16*/\
281 "paddw %%mm6, %%mm7 \n\t" /* buf0[eax]yalpha1 + buf1[eax](1-yalpha1) >>16*/\ 280 "paddw %%mm6, %%mm7 \n\t" /* buf0[eax]yalpha1 + buf1[eax](1-yalpha1) >>16*/\
282 "pmulhw "MANGLE(ubCoeff)", %%mm2\n\t"\ 281 "pmulhw "MANGLE(ubCoeff)", %%mm2\n\t"\