__asm __volatile(SFENCE:::"memory"); __asm __volatile(EMMS:::"memory");
void rgb32tobgr32(const uint8_t *src, uint8_t *dst, unsigned int src_size){	int num_pixels= src_size >> 2;#ifdef HAVE_MMX	asm volatile (		"xorl %%eax, %%eax		\n\t"		"1:				\n\t"		PREFETCH" 32(%0, %%eax)		\n\t"		"movq (%0, %%eax), %%mm0	\n\t"		"movq %%mm0, %%mm1		\n\t"		"movq %%mm0, %%mm2		\n\t"		"pslld $16, %%mm0		\n\t"		"psrld $16, %%mm1		\n\t"		"pand mask32r, %%mm0		\n\t"		"pand mask32g, %%mm2		\n\t"		"pand mask32b, %%mm1		\n\t"		"por %%mm0, %%mm2		\n\t"		"por %%mm1, %%mm2		\n\t"		MOVNTQ" %%mm2, (%1, %%eax)	\n\t"		"addl $2, %%eax			\n\t"		"cmpl %2, %%eax			\n\t"		" jb 1b				\n\t"		:: "r" (src), "r"(dst), "r" (num_pixels)		: "%eax"	);#else	int i;	for(i=0; i<num_pixels; i++)	{		dst[4*i + 0] = src[4*i + 2];		dst[4*i + 1] = src[4*i + 1];		dst[4*i + 2] = src[4*i + 0];	}#endif}