"addl %%eax, %1		\n\t" "addl %%eax, %2       		\n\t"
"add %%"REG_a", %1		\n\t" "add %%"REG_a", %2       	\n\t"
static void put_pixels16_mmx(uint8_t *block, const uint8_t *pixels, int line_size, int h){    __asm __volatile(	 "lea (%3, %3), %%eax		\n\t"	 ".balign 8			\n\t"	 "1:				\n\t"	 "movq (%1), %%mm0		\n\t"	 "movq 8(%1), %%mm4		\n\t"	 "movq (%1, %3), %%mm1		\n\t"	 "movq 8(%1, %3), %%mm5		\n\t"     	 "movq %%mm0, (%2)		\n\t"     	 "movq %%mm4, 8(%2)		\n\t"	 "movq %%mm1, (%2, %3)		\n\t"	 "movq %%mm5, 8(%2, %3)		\n\t"	 "addl %%eax, %1		\n\t"         "addl %%eax, %2       		\n\t"	 "movq (%1), %%mm0		\n\t"	 "movq 8(%1), %%mm4		\n\t"	 "movq (%1, %3), %%mm1		\n\t"	 "movq 8(%1, %3), %%mm5		\n\t"	 "movq %%mm0, (%2)		\n\t"	 "movq %%mm4, 8(%2)		\n\t"	 "movq %%mm1, (%2, %3)		\n\t"	 "movq %%mm5, 8(%2, %3)		\n\t"	 "addl %%eax, %1		\n\t"	 "addl %%eax, %2       		\n\t"	 "subl $4, %0			\n\t"	 "jnz 1b			\n\t"	 : "+g"(h), "+r" (pixels),  "+r" (block)	 : "r"(line_size)	 : "%eax", "memory"	);}