You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	__asm __volatile -> asm volatile part 3
Originally committed as revision 26091 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This commit is contained in:
		| @@ -92,12 +92,12 @@ static inline void RENAME(rgb24to32)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     #endif | ||||
|     end = s + src_size; | ||||
|     #ifdef HAVE_MMX | ||||
|         __asm __volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|         asm volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|         mm_end = end - 23; | ||||
|         __asm __volatile("movq        %0, %%mm7"::"m"(mask32):"memory"); | ||||
|         asm volatile("movq        %0, %%mm7"::"m"(mask32):"memory"); | ||||
|         while (s < mm_end) | ||||
|         { | ||||
|             __asm __volatile( | ||||
|             asm volatile( | ||||
|             PREFETCH"    32%1           \n\t" | ||||
|             "movd          %1, %%mm0    \n\t" | ||||
|             "punpckldq    3%1, %%mm0    \n\t" | ||||
| @@ -121,8 +121,8 @@ static inline void RENAME(rgb24to32)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|             dest += 32; | ||||
|             s += 24; | ||||
|         } | ||||
|         __asm __volatile(SFENCE:::"memory"); | ||||
|         __asm __volatile(EMMS:::"memory"); | ||||
|         asm volatile(SFENCE:::"memory"); | ||||
|         asm volatile(EMMS:::"memory"); | ||||
|     #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -152,11 +152,11 @@ static inline void RENAME(rgb32to24)(const uint8_t *src, uint8_t *dst, long src_ | ||||
| #endif | ||||
|     end = s + src_size; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     mm_end = end - 31; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movq          %1, %%mm0    \n\t" | ||||
|         "movq         8%1, %%mm1    \n\t" | ||||
| @@ -207,8 +207,8 @@ static inline void RENAME(rgb32to24)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         dest += 24; | ||||
|         s += 32; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -242,12 +242,12 @@ static inline void RENAME(rgb15to16)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     const uint8_t *mm_end; | ||||
|     end = s + src_size; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*s)); | ||||
|     __asm __volatile("movq        %0, %%mm4"::"m"(mask15s)); | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*s)); | ||||
|     asm volatile("movq        %0, %%mm4"::"m"(mask15s)); | ||||
|     mm_end = end - 15; | ||||
|     while (s<mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"  32%1         \n\t" | ||||
|         "movq        %1, %%mm0  \n\t" | ||||
|         "movq       8%1, %%mm2  \n\t" | ||||
| @@ -265,8 +265,8 @@ static inline void RENAME(rgb15to16)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         d+=16; | ||||
|         s+=16; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     mm_end = end - 3; | ||||
|     while (s < mm_end) | ||||
| @@ -291,13 +291,13 @@ static inline void RENAME(rgb16to15)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     const uint8_t *mm_end; | ||||
|     end = s + src_size; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*s)); | ||||
|     __asm __volatile("movq        %0, %%mm7"::"m"(mask15rg)); | ||||
|     __asm __volatile("movq        %0, %%mm6"::"m"(mask15b)); | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*s)); | ||||
|     asm volatile("movq        %0, %%mm7"::"m"(mask15rg)); | ||||
|     asm volatile("movq        %0, %%mm6"::"m"(mask15b)); | ||||
|     mm_end = end - 15; | ||||
|     while (s<mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"  32%1         \n\t" | ||||
|         "movq        %1, %%mm0  \n\t" | ||||
|         "movq       8%1, %%mm2  \n\t" | ||||
| @@ -319,8 +319,8 @@ static inline void RENAME(rgb16to15)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         d+=16; | ||||
|         s+=16; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     mm_end = end - 3; | ||||
|     while (s < mm_end) | ||||
| @@ -386,14 +386,14 @@ static inline void RENAME(rgb32to16)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     : "r" (mm_end), "m" (mask3216g), "m" (mask3216br), "m" (mul3216) | ||||
|     ); | ||||
| #else | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     __asm __volatile( | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     asm volatile( | ||||
|         "movq    %0, %%mm7    \n\t" | ||||
|         "movq    %1, %%mm6    \n\t" | ||||
|         ::"m"(red_16mask),"m"(green_16mask)); | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movd          %1, %%mm0    \n\t" | ||||
|         "movd         4%1, %%mm3    \n\t" | ||||
| @@ -427,8 +427,8 @@ static inline void RENAME(rgb32to16)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         s += 16; | ||||
|     } | ||||
| #endif | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -447,15 +447,15 @@ static inline void RENAME(rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long s | ||||
|     uint16_t *d = (uint16_t *)dst; | ||||
|     end = s + src_size; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     __asm __volatile( | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     asm volatile( | ||||
|         "movq          %0, %%mm7    \n\t" | ||||
|         "movq          %1, %%mm6    \n\t" | ||||
|         ::"m"(red_16mask),"m"(green_16mask)); | ||||
|     mm_end = end - 15; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movd          %1, %%mm0    \n\t" | ||||
|         "movd         4%1, %%mm3    \n\t" | ||||
| @@ -488,8 +488,8 @@ static inline void RENAME(rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long s | ||||
|         d += 4; | ||||
|         s += 16; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -545,14 +545,14 @@ static inline void RENAME(rgb32to15)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     : "r" (mm_end), "m" (mask3215g), "m" (mask3216br), "m" (mul3215) | ||||
|     ); | ||||
| #else | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     __asm __volatile( | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     asm volatile( | ||||
|         "movq          %0, %%mm7    \n\t" | ||||
|         "movq          %1, %%mm6    \n\t" | ||||
|         ::"m"(red_15mask),"m"(green_15mask)); | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movd          %1, %%mm0    \n\t" | ||||
|         "movd         4%1, %%mm3    \n\t" | ||||
| @@ -586,8 +586,8 @@ static inline void RENAME(rgb32to15)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         s += 16; | ||||
|     } | ||||
| #endif | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -606,15 +606,15 @@ static inline void RENAME(rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long s | ||||
|     uint16_t *d = (uint16_t *)dst; | ||||
|     end = s + src_size; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     __asm __volatile( | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     asm volatile( | ||||
|         "movq          %0, %%mm7    \n\t" | ||||
|         "movq          %1, %%mm6    \n\t" | ||||
|         ::"m"(red_15mask),"m"(green_15mask)); | ||||
|     mm_end = end - 15; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movd          %1, %%mm0    \n\t" | ||||
|         "movd         4%1, %%mm3    \n\t" | ||||
| @@ -647,8 +647,8 @@ static inline void RENAME(rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long s | ||||
|         d += 4; | ||||
|         s += 16; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -667,15 +667,15 @@ static inline void RENAME(rgb24to16)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     uint16_t *d = (uint16_t *)dst; | ||||
|     end = s + src_size; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     __asm __volatile( | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     asm volatile( | ||||
|         "movq         %0, %%mm7     \n\t" | ||||
|         "movq         %1, %%mm6     \n\t" | ||||
|         ::"m"(red_16mask),"m"(green_16mask)); | ||||
|     mm_end = end - 11; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movd          %1, %%mm0    \n\t" | ||||
|         "movd         3%1, %%mm3    \n\t" | ||||
| @@ -708,8 +708,8 @@ static inline void RENAME(rgb24to16)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         d += 4; | ||||
|         s += 12; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -730,15 +730,15 @@ static inline void RENAME(rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long s | ||||
|     uint16_t *d = (uint16_t *)dst; | ||||
|     end = s + src_size; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     __asm __volatile( | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     asm volatile( | ||||
|         "movq         %0, %%mm7     \n\t" | ||||
|         "movq         %1, %%mm6     \n\t" | ||||
|         ::"m"(red_16mask),"m"(green_16mask)); | ||||
|     mm_end = end - 15; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movd          %1, %%mm0    \n\t" | ||||
|         "movd         3%1, %%mm3    \n\t" | ||||
| @@ -771,8 +771,8 @@ static inline void RENAME(rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long s | ||||
|         d += 4; | ||||
|         s += 12; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -793,15 +793,15 @@ static inline void RENAME(rgb24to15)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     uint16_t *d = (uint16_t *)dst; | ||||
|     end = s + src_size; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     __asm __volatile( | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     asm volatile( | ||||
|         "movq          %0, %%mm7    \n\t" | ||||
|         "movq          %1, %%mm6    \n\t" | ||||
|         ::"m"(red_15mask),"m"(green_15mask)); | ||||
|     mm_end = end - 11; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movd          %1, %%mm0    \n\t" | ||||
|         "movd         3%1, %%mm3    \n\t" | ||||
| @@ -834,8 +834,8 @@ static inline void RENAME(rgb24to15)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         d += 4; | ||||
|         s += 12; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -856,15 +856,15 @@ static inline void RENAME(rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long s | ||||
|     uint16_t *d = (uint16_t *)dst; | ||||
|     end = s + src_size; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     __asm __volatile( | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*src):"memory"); | ||||
|     asm volatile( | ||||
|         "movq         %0, %%mm7     \n\t" | ||||
|         "movq         %1, %%mm6     \n\t" | ||||
|         ::"m"(red_15mask),"m"(green_15mask)); | ||||
|     mm_end = end - 15; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"   32%1            \n\t" | ||||
|         "movd         %1, %%mm0     \n\t" | ||||
|         "movd        3%1, %%mm3     \n\t" | ||||
| @@ -897,8 +897,8 @@ static inline void RENAME(rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long s | ||||
|         d += 4; | ||||
|         s += 12; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -940,11 +940,11 @@ static inline void RENAME(rgb15to24)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     const uint16_t *s = (uint16_t *)src; | ||||
|     end = s + src_size/2; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     mm_end = end - 7; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movq          %1, %%mm0    \n\t" | ||||
|         "movq          %1, %%mm1    \n\t" | ||||
| @@ -1007,7 +1007,7 @@ static inline void RENAME(rgb15to24)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         :"m"(*s),"m"(mask15b),"m"(mask15g),"m"(mask15r), "m"(mmx_null) | ||||
|         :"memory"); | ||||
|         /* Borrowed 32 to 24 */ | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         "movq       %%mm0, %%mm4    \n\t" | ||||
|         "movq       %%mm3, %%mm5    \n\t" | ||||
|         "movq       %%mm6, %%mm0    \n\t" | ||||
| @@ -1059,8 +1059,8 @@ static inline void RENAME(rgb15to24)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         d += 24; | ||||
|         s += 8; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -1082,11 +1082,11 @@ static inline void RENAME(rgb16to24)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     const uint16_t *s = (const uint16_t *)src; | ||||
|     end = s + src_size/2; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     mm_end = end - 7; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movq          %1, %%mm0    \n\t" | ||||
|         "movq          %1, %%mm1    \n\t" | ||||
| @@ -1148,7 +1148,7 @@ static inline void RENAME(rgb16to24)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         :"m"(*s),"m"(mask16b),"m"(mask16g),"m"(mask16r),"m"(mmx_null) | ||||
|         :"memory"); | ||||
|         /* Borrowed 32 to 24 */ | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         "movq       %%mm0, %%mm4    \n\t" | ||||
|         "movq       %%mm3, %%mm5    \n\t" | ||||
|         "movq       %%mm6, %%mm0    \n\t" | ||||
| @@ -1200,8 +1200,8 @@ static inline void RENAME(rgb16to24)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         d += 24; | ||||
|         s += 8; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -1223,12 +1223,12 @@ static inline void RENAME(rgb15to32)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     const uint16_t *s = (const uint16_t *)src; | ||||
|     end = s + src_size/2; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     __asm __volatile("pxor    %%mm7,%%mm7    \n\t":::"memory"); | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     asm volatile("pxor    %%mm7,%%mm7    \n\t":::"memory"); | ||||
|     mm_end = end - 3; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movq          %1, %%mm0    \n\t" | ||||
|         "movq          %1, %%mm1    \n\t" | ||||
| @@ -1264,8 +1264,8 @@ static inline void RENAME(rgb15to32)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         d += 16; | ||||
|         s += 4; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -1301,12 +1301,12 @@ static inline void RENAME(rgb16to32)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|     const uint16_t *s = (uint16_t *)src; | ||||
|     end = s + src_size/2; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     __asm __volatile("pxor    %%mm7,%%mm7    \n\t":::"memory"); | ||||
|     asm volatile(PREFETCH"    %0"::"m"(*s):"memory"); | ||||
|     asm volatile("pxor    %%mm7,%%mm7    \n\t":::"memory"); | ||||
|     mm_end = end - 3; | ||||
|     while (s < mm_end) | ||||
|     { | ||||
|         __asm __volatile( | ||||
|         asm volatile( | ||||
|         PREFETCH"    32%1           \n\t" | ||||
|         "movq          %1, %%mm0    \n\t" | ||||
|         "movq          %1, %%mm1    \n\t" | ||||
| @@ -1342,8 +1342,8 @@ static inline void RENAME(rgb16to32)(const uint8_t *src, uint8_t *dst, long src_ | ||||
|         d += 16; | ||||
|         s += 4; | ||||
|     } | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     while (s < end) | ||||
|     { | ||||
| @@ -1368,7 +1368,7 @@ static inline void RENAME(rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long s | ||||
|     long idx = 15 - src_size; | ||||
|     uint8_t *s = (uint8_t *) src-idx, *d = dst-idx; | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile( | ||||
|     asm volatile( | ||||
|     "test          %0, %0           \n\t" | ||||
|     "jns           2f               \n\t" | ||||
|     PREFETCH"       (%1, %0)        \n\t" | ||||
| @@ -1475,8 +1475,8 @@ static inline void RENAME(rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long s | ||||
|     : "r" (src-mmx_size), "r"(dst-mmx_size) | ||||
|     ); | ||||
|  | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
|  | ||||
|     if (mmx_size==23) return; //finihsed, was multiple of 8 | ||||
|  | ||||
|   | ||||
| @@ -3259,8 +3259,8 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s | ||||
|     } | ||||
|  | ||||
| #ifdef HAVE_MMX | ||||
|     __asm __volatile(SFENCE:::"memory"); | ||||
|     __asm __volatile(EMMS:::"memory"); | ||||
|     asm volatile(SFENCE:::"memory"); | ||||
|     asm volatile(EMMS:::"memory"); | ||||
| #endif | ||||
|     /* store changed local vars back in the context */ | ||||
|     c->dstY= dstY; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user