static inline void RENAME(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc,

				    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)

{

#ifdef HAVE_MMX

	if(uDest != NULL)

	{

		asm volatile(

				YSCALEYUV2YV121

				:: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW),

				"g" (-chrDstW)

				: "%"REG_a

			);



		asm volatile(

				YSCALEYUV2YV121

				:: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW),

				"g" (-chrDstW)

				: "%"REG_a

			);

	}



	asm volatile(

		YSCALEYUV2YV121

		:: "r" (lumSrc + dstW), "r" (dest + dstW),

		"g" (-dstW)

		: "%"REG_a

	);

#else

	int i;

	for(i=0; i<dstW; i++)

	{

		int val= lumSrc[i]>>7;



		if(val&256){

			if(val<0) val=0;

			else      val=255;

		}



		dest[i]= val;

	}



	if(uDest != NULL)

		for(i=0; i<chrDstW; i++)

		{

			int u=chrSrc[i]>>7;

			int v=chrSrc[i + 2048]>>7;



			if((u|v)&256){

				if(u<0)         u=0;

				else if (u>255) u=255;

				if(v<0)         v=0;

				else if (v>255) v=255;

			}



			uDest[i]= u;

			vDest[i]= v;

		}

#endif

}

static inline void RENAME(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc,

				    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)

{

#ifdef HAVE_MMX

	if(uDest != NULL)

	{

		asm volatile(

				YSCALEYUV2YV121

				:: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW),

				"g" (-chrDstW)

				: "%"REG_a

			);



		asm volatile(

				YSCALEYUV2YV121

				:: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW),

				"g" (-chrDstW)

				: "%"REG_a

			);

	}



	asm volatile(

		YSCALEYUV2YV121

		:: "r" (lumSrc + dstW), "r" (dest + dstW),

		"g" (-dstW)

		: "%"REG_a

	);

#else

	int i;

	for(i=0; i<dstW; i++)

	{

		int val= lumSrc[i]>>7;



		if(val&256){

			if(val<0) val=0;

			else      val=255;

		}



		dest[i]= val;

	}



	if(uDest != NULL)

		for(i=0; i<chrDstW; i++)

		{

			int u=chrSrc[i]>>7;

			int v=chrSrc[i + 2048]>>7;



			if((u|v)&256){

				if(u<0)         u=0;

				else if (u>255) u=255;

				if(v<0)         v=0;

				else if (v>255) v=255;

			}



			uDest[i]= u;

			vDest[i]= v;

		}

#endif

}

				    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW) 				    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW) 	if(uDest != NULL) 		asm volatile( 				YSCALEYUV2YV121 				:: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW), 				"g" (-chrDstW) 				: "%"REG_a 			); 		asm volatile( 				YSCALEYUV2YV121 				:: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW), 				"g" (-chrDstW) 				: "%"REG_a 			); 	asm volatile( 		YSCALEYUV2YV121 		:: "r" (lumSrc + dstW), "r" (dest + dstW), 		"g" (-dstW) 		: "%"REG_a 	); 	int i; 	for(i=0; i<dstW; i++) 		int val= lumSrc[i]>>7; 		if(val&256){ 			if(val<0) val=0; 			else      val=255; 		dest[i]= val; 	if(uDest != NULL) 		for(i=0; i<chrDstW; i++) 			int u=chrSrc[i]>>7; 			int v=chrSrc[i + 2048]>>7; 			if((u|v)&256){ 				if(u<0)         u=0; 				else if (u>255) u=255; 				if(v<0)         v=0; 				else if (v>255) v=255; 			uDest[i]= u; 			vDest[i]= v; 			); #endif #endif 			); #endif #endif #endif 	int i; 			); #endif 			); 			); 			); #endif 			); 			); #endif 			); #endif 			); 			); 	int i; 			); 			); #endif 			); #endif 			); 			); 			); 			); #endif 			); #endif 			); 			); #endif 	asm volatile( 		: "%"REG_a 	); 	int i; 	asm volatile( 		: "%"REG_a 	); 	int i; #endif 	asm volatile( 		: "%"REG_a 	); 	int i; 	asm volatile( 		: "%"REG_a 	); 	int i; #endif 	int i; 	int i; 	asm volatile( #endif #endif 	); 	int i; 	asm volatile( #endif #endif #endif #endif 	); 	int i; #endif 	int i; 	int i; 	int i; 	int i; 	int i; 	int i; 	int i; 	int i; 	int i; 	int i; 	int i; 	int i; 	int i; 	int i; 		asm volatile( #endif #endif 		asm volatile( #endif #endif 		asm volatile( 	int i; 	for(i=0; i<dstW; i++) 	int i; 		asm volatile( #endif #endif #endif 	asm volatile( 	int i; 	int i; 		asm volatile( #endif #endif #endif 	asm volatile( 	int i; #endif
static inline void FUNC_0(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc,

				    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)

{

#ifdef HAVE_MMX

	if(uDest != NULL)

	{

		asm volatile(

				YSCALEYUV2YV121

				:: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW),

				"g" (-chrDstW)

				: "%"REG_a

			);



		asm volatile(

				YSCALEYUV2YV121

				:: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW),

				"g" (-chrDstW)

				: "%"REG_a

			);

	}



	asm volatile(

		YSCALEYUV2YV121

		:: "r" (lumSrc + dstW), "r" (dest + dstW),

		"g" (-dstW)

		: "%"REG_a

	);

#else

	int VAR_0;

	for(VAR_0=0; VAR_0<dstW; VAR_0++)

	{

		int val= lumSrc[VAR_0]>>7;



		if(val&256){

			if(val<0) val=0;

			else      val=255;

		}



		dest[VAR_0]= val;

	}



	if(uDest != NULL)

		for(VAR_0=0; VAR_0<chrDstW; VAR_0++)

		{

			int u=chrSrc[VAR_0]>>7;

			int v=chrSrc[VAR_0 + 2048]>>7;



			if((u|v)&256){

				if(u<0)         u=0;

				else if (u>255) u=255;

				if(v<0)         v=0;

				else if (v>255) v=255;

			}



			uDest[VAR_0]= u;

			vDest[VAR_0]= v;

		}

#endif

}

static inline void FUNC_0(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc,
uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)
{ #ifdef HAVE_MMX
if(uDest != NULL)
{ asm volatile(
YSCALEYUV2YV121
:: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW),
"g" (-chrDstW)
: "%"REG_a
); asm volatile(
YSCALEYUV2YV121
:: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW),
"g" (-chrDstW)
: "%"REG_a
); } asm volatile(
YSCALEYUV2YV121
:: "r" (lumSrc + dstW), "r" (dest + dstW),
"g" (-dstW)
: "%"REG_a
); #else
int VAR_0; for(VAR_0=0; VAR_0<dstW; VAR_0++) { int val= lumSrc[VAR_0]>>7; if(val&256){ if(val<0) val=0; else      val=255; } dest[VAR_0]= val; } if(uDest != NULL)
for(VAR_0=0; VAR_0<chrDstW; VAR_0++) { int u=chrSrc[VAR_0]>>7; int v=chrSrc[VAR_0 + 2048]>>7; if((u|v)&256){ if(u<0)         u=0; else if (u>255) u=255; if(v<0)         v=0; else if (v>255) v=255; } uDest[VAR_0]= u; vDest[VAR_0]= v; } #endif
}