for(int x=0; x<BLOCK_SIZE; x++)
int x; for(x=0; x<BLOCK_SIZE; x++)
static inline void vertRKFilter(uint8_t *src, int stride, int QP){#ifdef HAVE_MMX2// FIXME rounding	asm volatile(		"pxor %%mm7, %%mm7				\n\t" // 0		"movq b80, %%mm6				\n\t" // MIN_SIGNED_BYTE		"leal (%0, %1), %%eax				\n\t"		"leal (%%eax, %1, 4), %%ebx			\n\t"//	0	1	2	3	4	5	6	7	8	9//	%0	eax	eax+%1	eax+2%1	%0+4%1	ebx	ebx+%1	ebx+2%1	%0+8%1	ebx+4%1		"movq pQPb, %%mm0				\n\t" // QP,..., QP		"movq %%mm0, %%mm1				\n\t" // QP,..., QP		"paddusb b02, %%mm0				\n\t"		"psrlw $2, %%mm0				\n\t"		"pand b3F, %%mm0				\n\t" // QP/4,..., QP/4		"paddusb %%mm1, %%mm0				\n\t" // QP*1.25 ...		"movq (%0, %1, 4), %%mm2			\n\t" // line 4		"movq (%%ebx), %%mm3				\n\t" // line 5		"movq %%mm2, %%mm4				\n\t" // line 4		"pcmpeqb %%mm5, %%mm5				\n\t" // -1		"pxor %%mm2, %%mm5				\n\t" // -line 4 - 1		"pavgb %%mm3, %%mm5				\n\t"		"paddb %%mm6, %%mm5				\n\t" // (l5-l4)/2		"psubusb %%mm3, %%mm4				\n\t"		"psubusb %%mm2, %%mm3				\n\t"		"por %%mm3, %%mm4				\n\t" // |l4 - l5|		"psubusb %%mm0, %%mm4				\n\t"		"pcmpeqb %%mm7, %%mm4				\n\t"		"pand %%mm4, %%mm5				\n\t" // d/2//		"paddb %%mm6, %%mm2				\n\t" // line 4 + 0x80		"paddb %%mm5, %%mm2				\n\t"//		"psubb %%mm6, %%mm2				\n\t"		"movq %%mm2, (%0,%1, 4)				\n\t"		"movq (%%ebx), %%mm2				\n\t"//		"paddb %%mm6, %%mm2				\n\t" // line 5 + 0x80		"psubb %%mm5, %%mm2				\n\t"//		"psubb %%mm6, %%mm2				\n\t"		"movq %%mm2, (%%ebx)				\n\t"		"paddb %%mm6, %%mm5				\n\t"		"psrlw $2, %%mm5				\n\t"		"pand b3F, %%mm5				\n\t"		"psubb b20, %%mm5				\n\t" // (l5-l4)/8		"movq (%%eax, %1, 2), %%mm2			\n\t"		"paddb %%mm6, %%mm2				\n\t" // line 3 + 0x80		"paddsb %%mm5, %%mm2				\n\t"		"psubb %%mm6, %%mm2				\n\t"		"movq %%mm2, (%%eax, %1, 2)			\n\t"		"movq (%%ebx, %1), %%mm2			\n\t"		"paddb %%mm6, %%mm2				\n\t" // line 6 + 0x80		"psubsb %%mm5, %%mm2				\n\t"		"psubb %%mm6, %%mm2				\n\t"		"movq %%mm2, (%%ebx, %1)			\n\t"		:		: "r" (src), "r" (stride)		: "%eax", "%ebx"	);#else 	const int l1= stride;	const int l2= stride + l1;	const int l3= stride + l2;	const int l4= stride + l3;	const int l5= stride + l4;	const int l6= stride + l5;	const int l7= stride + l6;	const int l8= stride + l7;	const int l9= stride + l8;	for(int x=0; x<BLOCK_SIZE; x++)	{		if(ABS(src[l4]-src[l5]) < QP + QP/4)		{			int x = src[l5] - src[l4];			src[l3] +=x/8;			src[l4] +=x/2;			src[l5] -=x/2;			src[l6] -=x/8;		}		src++;	}#endif}