[MPlayer-cvslog] r23015 - trunk/libswscale/rgb2rgb_template.c

ivo subversion at mplayerhq.hu
Wed Apr 18 11:27:59 CEST 2007


Author: ivo
Date: Wed Apr 18 11:27:59 2007
New Revision: 23015

Modified:
   trunk/libswscale/rgb2rgb_template.c

Log:
skip MMX code in rgb24tobgr24 if the size of the input is smaller than the
size of the units the MMX code processes


Modified: trunk/libswscale/rgb2rgb_template.c
==============================================================================
--- trunk/libswscale/rgb2rgb_template.c	(original)
+++ trunk/libswscale/rgb2rgb_template.c	Wed Apr 18 11:27:59 2007
@@ -1435,6 +1435,8 @@ static inline void RENAME(rgb24tobgr24)(
 #ifdef HAVE_MMX
 	long mmx_size= 23 - src_size;
 	asm volatile (
+		"test %%"REG_a", %%"REG_a"	\n\t"
+		"jns 2f				\n\t"
 		"movq "MANGLE(mask24r)", %%mm5	\n\t"
 		"movq "MANGLE(mask24g)", %%mm6	\n\t"
 		"movq "MANGLE(mask24b)", %%mm7	\n\t"
@@ -1471,6 +1473,7 @@ static inline void RENAME(rgb24tobgr24)(
 		MOVNTQ" %%mm1, 16(%2, %%"REG_a")\n\t"
 		"add $24, %%"REG_a"		\n\t"
 		" js 1b				\n\t"
+		"2:				\n\t"
 		: "+a" (mmx_size)
 		: "r" (src-mmx_size), "r"(dst-mmx_size)
 	);



More information about the MPlayer-cvslog mailing list