Revision 5ac80202 postproc/swscale_template.c

View differences:

postproc/swscale_template.c
59 59
#define MOVNTQ(a,b) "movq " #a ", " #b " \n\t"
60 60
#endif
61 61

  
62

  
63 62
#define YSCALEYUV2YV12X(x) \
64 63
			"xorl %%eax, %%eax		\n\t"\
65 64
			"pxor %%mm3, %%mm3		\n\t"\
......
239 238
		"movd %6, %%mm6			\n\t" /*yalpha1*/\
240 239
		"punpcklwd %%mm6, %%mm6		\n\t"\
241 240
		"punpcklwd %%mm6, %%mm6		\n\t"\
242
		"movq %%mm6, "MANGLE(asm_yalpha1)"\n\t"\
241
		"movq %%mm6, 3968(%2)		\n\t"\
243 242
		"movd %7, %%mm5			\n\t" /*uvalpha1*/\
244 243
		"punpcklwd %%mm5, %%mm5		\n\t"\
245 244
		"punpcklwd %%mm5, %%mm5		\n\t"\
246
		"movq %%mm5, "MANGLE(asm_uvalpha1)"\n\t"\
245
		"movq %%mm5, 3976(%2)		\n\t"\
247 246
		"xorl %%eax, %%eax		\n\t"\
248 247
		".balign 16			\n\t"\
249 248
		"1:				\n\t"\
......
253 252
		"movq 4096(%3, %%eax), %%mm4	\n\t" /* uvbuf1[eax+2048]*/\
254 253
		"psubw %%mm3, %%mm2		\n\t" /* uvbuf0[eax] - uvbuf1[eax]*/\
255 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 256
		"pmulhw %%mm0, %%mm2		\n\t" /* (uvbuf0[eax] - uvbuf1[eax])uvalpha1>>16*/\
258 257
		"pmulhw %%mm0, %%mm5		\n\t" /* (uvbuf0[eax+2048] - uvbuf1[eax+2048])uvalpha1>>16*/\
259 258
		"psraw $4, %%mm3		\n\t" /* uvbuf0[eax] - uvbuf1[eax] >>4*/\
......
273 272
		"movq 8(%1, %%eax, 2), %%mm7	\n\t" /*buf1[eax]*/\
274 273
		"psubw %%mm1, %%mm0		\n\t" /* buf0[eax] - buf1[eax]*/\
275 274
		"psubw %%mm7, %%mm6		\n\t" /* buf0[eax] - buf1[eax]*/\
276
		"pmulhw "MANGLE(asm_yalpha1)", %%mm0\n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\
277
		"pmulhw "MANGLE(asm_yalpha1)", %%mm6\n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\
275
		"pmulhw 3968(%2), %%mm0		\n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\
276
		"pmulhw 3968(%2), %%mm6		\n\t" /* (buf0[eax] - buf1[eax])yalpha1>>16*/\
278 277
		"psraw $4, %%mm1		\n\t" /* buf0[eax] - buf1[eax] >>4*/\
279 278
		"psraw $4, %%mm7		\n\t" /* buf0[eax] - buf1[eax] >>4*/\
280 279
		"paddw %%mm0, %%mm1		\n\t" /* buf0[eax]yalpha1 + buf1[eax](1-yalpha1) >>16*/\

Also available in: Unified diff