src+= stride*3;
static inline void deInterlaceInterpolateCubic(uint8_t src[], int stride){#if defined (HAVE_MMX2) || defined (HAVE_3DNOW)	asm volatile(		"leal (%0, %1), %%eax				\n\t"		"leal (%%eax, %1, 4), %%ebx			\n\t"		"leal (%%ebx, %1, 4), %%ecx			\n\t"		"addl %1, %%ecx					\n\t"		"pxor %%mm7, %%mm7				\n\t"//	0	1	2	3	4	5	6	7	8	9	10//	%0	eax	eax+%1	eax+2%1	%0+4%1	ebx	ebx+%1	ebx+2%1	%0+8%1	ebx+4%1 ecx#define DEINT_CUBIC(a,b,c,d,e)\		"movq " #a ", %%mm0				\n\t"\		"movq " #b ", %%mm1				\n\t"\		"movq " #d ", %%mm2				\n\t"\		"movq " #e ", %%mm3				\n\t"\		PAVGB(%%mm2, %%mm1)					/* (b+d) /2 */\		PAVGB(%%mm3, %%mm0)					/* a(a+e) /2 */\		"movq %%mm0, %%mm2				\n\t"\		"punpcklbw %%mm7, %%mm0				\n\t"\		"punpckhbw %%mm7, %%mm2				\n\t"\		"movq %%mm1, %%mm3				\n\t"\		"punpcklbw %%mm7, %%mm1				\n\t"\		"punpckhbw %%mm7, %%mm3				\n\t"\		"psubw %%mm1, %%mm0				\n\t"	/* L(a+e - (b+d))/2 */\		"psubw %%mm3, %%mm2				\n\t"	/* H(a+e - (b+d))/2 */\		"psraw $3, %%mm0				\n\t"	/* L(a+e - (b+d))/16 */\		"psraw $3, %%mm2				\n\t"	/* H(a+e - (b+d))/16 */\		"psubw %%mm0, %%mm1				\n\t"	/* L(9b + 9d - a - e)/16 */\		"psubw %%mm2, %%mm3				\n\t"	/* H(9b + 9d - a - e)/16 */\		"packuswb %%mm3, %%mm1				\n\t"\		"movq %%mm1, " #c "				\n\t"DEINT_CUBIC((%0), (%%eax, %1), (%%eax, %1, 2), (%0, %1, 4), (%%ebx, %1))DEINT_CUBIC((%%eax, %1), (%0, %1, 4), (%%ebx), (%%ebx, %1), (%0, %1, 8))DEINT_CUBIC((%0, %1, 4), (%%ebx, %1), (%%ebx, %1, 2), (%0, %1, 8), (%%ecx))DEINT_CUBIC((%%ebx, %1), (%0, %1, 8), (%%ebx, %1, 4), (%%ecx), (%%ecx, %1, 2))		: : "r" (src), "r" (stride)		: "%eax", "%ebx", "ecx"	);#else	int x;	for(x=0; x<8; x++)	{		src[stride*3] = (-src[0]        + 9*src[stride*2] + 9*src[stride*4] - src[stride*6])>>4;		src[stride*5] = (-src[stride*2] + 9*src[stride*4] + 9*src[stride*6] - src[stride*8])>>4;		src[stride*7] = (-src[stride*4] + 9*src[stride*6] + 9*src[stride*8] - src[stride*10])>>4;		src[stride*9] = (-src[stride*6] + 9*src[stride*8] + 9*src[stride*10] - src[stride*12])>>4;		src++;	}#endif}