static void add_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line_size)

{

    const DCTELEM *p;

    UINT8 *pix;

    int i;



    /* read the pixels */

    p = block;

    pix = pixels;

    MOVQ_ZERO(mm7);

    i = 4;

    while (i) {

	__asm __volatile(

		"movq	%2, %%mm0\n\t"

		"movq	8%2, %%mm1\n\t"

		"movq	16%2, %%mm2\n\t"

		"movq	24%2, %%mm3\n\t"

		"movq	%0, %%mm4\n\t"

		"movq	%1, %%mm6\n\t"

		"movq	%%mm4, %%mm5\n\t"

		"punpcklbw %%mm7, %%mm4\n\t"

		"punpckhbw %%mm7, %%mm5\n\t"

		"paddsw	%%mm4, %%mm0\n\t"

		"paddsw	%%mm5, %%mm1\n\t"

		"movq	%%mm6, %%mm5\n\t"

		"punpcklbw %%mm7, %%mm6\n\t"

		"punpckhbw %%mm7, %%mm5\n\t"

		"paddsw	%%mm6, %%mm2\n\t"

		"paddsw	%%mm5, %%mm3\n\t"

		"packuswb %%mm1, %%mm0\n\t"

		"packuswb %%mm3, %%mm2\n\t"

		"movq	%%mm0, %0\n\t"

		"movq	%%mm2, %1\n\t"

		:"+m"(*pix), "+m"(*(pix+line_size))

		:"m"(*p)

		:"memory");

        pix += line_size*2;

        p += 16;

        i--;

    };

}

static void add_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line_size)

{

    const DCTELEM *p;

    UINT8 *pix;

    int i;



    

    p = block;

    pix = pixels;

    MOVQ_ZERO(mm7);

    i = 4;

    while (i) {

	__asm __volatile(

		"movq	%2, %%mm0\n\t"

		"movq	8%2, %%mm1\n\t"

		"movq	16%2, %%mm2\n\t"

		"movq	24%2, %%mm3\n\t"

		"movq	%0, %%mm4\n\t"

		"movq	%1, %%mm6\n\t"

		"movq	%%mm4, %%mm5\n\t"

		"punpcklbw %%mm7, %%mm4\n\t"

		"punpckhbw %%mm7, %%mm5\n\t"

		"paddsw	%%mm4, %%mm0\n\t"

		"paddsw	%%mm5, %%mm1\n\t"

		"movq	%%mm6, %%mm5\n\t"

		"punpcklbw %%mm7, %%mm6\n\t"

		"punpckhbw %%mm7, %%mm5\n\t"

		"paddsw	%%mm6, %%mm2\n\t"

		"paddsw	%%mm5, %%mm3\n\t"

		"packuswb %%mm1, %%mm0\n\t"

		"packuswb %%mm3, %%mm2\n\t"

		"movq	%%mm0, %0\n\t"

		"movq	%%mm2, %1\n\t"

		:"+m"(*pix), "+m"(*(pix+line_size))

		:"m"(*p)

		:"memory");

        pix += line_size*2;

        p += 16;

        i--;

    };

}

    while (i) { 		"movq	%2, %%mm0\n\t" 		"movq	8%2, %%mm1\n\t" 		"movq	16%2, %%mm2\n\t" 		"movq	24%2, %%mm3\n\t" 		:"m"(*p)         i--;     };
static void FUNC_0(const DCTELEM *VAR_0, UINT8 *VAR_1, int VAR_2)

{

    const DCTELEM *VAR_3;

    UINT8 *pix;

    int VAR_4;



    

    VAR_3 = VAR_0;

    pix = VAR_1;

    MOVQ_ZERO(mm7);

    VAR_4 = 4;

    while (VAR_4) {

	__asm __volatile(

		"movq	%2, %%mm0\n\t"

		"movq	8%2, %%mm1\n\t"

		"movq	16%2, %%mm2\n\t"

		"movq	24%2, %%mm3\n\t"

		"movq	%0, %%mm4\n\t"

		"movq	%1, %%mm6\n\t"

		"movq	%%mm4, %%mm5\n\t"

		"punpcklbw %%mm7, %%mm4\n\t"

		"punpckhbw %%mm7, %%mm5\n\t"

		"paddsw	%%mm4, %%mm0\n\t"

		"paddsw	%%mm5, %%mm1\n\t"

		"movq	%%mm6, %%mm5\n\t"

		"punpcklbw %%mm7, %%mm6\n\t"

		"punpckhbw %%mm7, %%mm5\n\t"

		"paddsw	%%mm6, %%mm2\n\t"

		"paddsw	%%mm5, %%mm3\n\t"

		"packuswb %%mm1, %%mm0\n\t"

		"packuswb %%mm3, %%mm2\n\t"

		"movq	%%mm0, %0\n\t"

		"movq	%%mm2, %1\n\t"

		:"+m"(*pix), "+m"(*(pix+VAR_2))

		:"m"(*VAR_3)

		:"memory");

        pix += VAR_2*2;

        VAR_3 += 16;

        VAR_4--;

    };

}

static void FUNC_0(const DCTELEM *VAR_0, UINT8 *VAR_1, int VAR_2)
{ const DCTELEM *VAR_3; UINT8 *pix; int VAR_4; VAR_3 = VAR_0; pix = VAR_1; MOVQ_ZERO(mm7); VAR_4 = 4; while (VAR_4) { __asm __volatile(
"movq	%2, %%mm0\n\t"
"movq	8%2, %%mm1\n\t"
"movq	16%2, %%mm2\n\t"
"movq	24%2, %%mm3\n\t"
"movq	%0, %%mm4\n\t"
"movq	%1, %%mm6\n\t"
"movq	%%mm4, %%mm5\n\t"
"punpcklbw %%mm7, %%mm4\n\t"
"punpckhbw %%mm7, %%mm5\n\t"
"paddsw	%%mm4, %%mm0\n\t"
"paddsw	%%mm5, %%mm1\n\t"
"movq	%%mm6, %%mm5\n\t"
"punpcklbw %%mm7, %%mm6\n\t"
"punpckhbw %%mm7, %%mm5\n\t"
"paddsw	%%mm6, %%mm2\n\t"
"paddsw	%%mm5, %%mm3\n\t"
"packuswb %%mm1, %%mm0\n\t"
"packuswb %%mm3, %%mm2\n\t"
"movq	%%mm0, %0\n\t"
"movq	%%mm2, %1\n\t"
:"+m"(*pix), "+m"(*(pix+VAR_2))
:"m"(*VAR_3)
:"memory"); pix += VAR_2*2; VAR_3 += 16; VAR_4--; }; }