From 35a99949778ee8155cd64e774a11be7e7b457ac2 Mon Sep 17 00:00:00 2001 From: Ivo van Poorten Date: Wed, 18 Apr 2007 09:27:59 +0000 Subject: skip MMX code in rgb24tobgr24 if the size of the input is smaller than the size of the units the MMX code processes Originally committed as revision 23015 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale --- libswscale/rgb2rgb_template.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libswscale/rgb2rgb_template.c') diff --git a/libswscale/rgb2rgb_template.c b/libswscale/rgb2rgb_template.c index 2e2066b2cb..f06e4ed72d 100644 --- a/libswscale/rgb2rgb_template.c +++ b/libswscale/rgb2rgb_template.c @@ -1435,6 +1435,8 @@ static inline void RENAME(rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long s #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)(const uint8_t *src, uint8_t *dst, long s 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) ); -- cgit v1.2.3