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