diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-10-28 19:41:50 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-10-28 19:41:50 +0000 |
commit | cd36f609110a5d782dc750b716d9f013a575198d (patch) | |
tree | c311da1d039b9064d32fc18e450efc81360109c2 /postproc/swscale_template.c | |
parent | a4ef78e9a19ef29c6f4446c7bbed103ea3e66681 (diff) | |
download | mpv-cd36f609110a5d782dc750b716d9f013a575198d.tar.bz2 mpv-cd36f609110a5d782dc750b716d9f013a575198d.tar.xz |
3dnow prefetch & sfence
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2521 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'postproc/swscale_template.c')
-rw-r--r-- | postproc/swscale_template.c | 37 |
1 files changed, 11 insertions, 26 deletions
diff --git a/postproc/swscale_template.c b/postproc/swscale_template.c index 476367d60b..d4a242309b 100644 --- a/postproc/swscale_template.c +++ b/postproc/swscale_template.c @@ -9,6 +9,7 @@ #include <string.h> #include "../config.h" #include "swscale.h" +#include "../mmx_defs.h" //#undef HAVE_MMX2 //#undef HAVE_MMX @@ -929,20 +930,15 @@ static inline void hyscale(uint16_t *dst, int dstWidth, uint8_t *src, int srcWid "xorl %%ecx, %%ecx \n\t" "xorl %%ebx, %%ebx \n\t" "movw %4, %%bx \n\t" // (xInc*4)&0xFFFF -#ifdef HAVE_MMX2 -#define FUNNY_Y_CODE \ - "prefetchnta 1024(%%esi) \n\t"\ - "prefetchnta 1056(%%esi) \n\t"\ - "prefetchnta 1088(%%esi) \n\t"\ - "call funnyYCode \n\t"\ - "movq temp0, %%mm2 \n\t"\ - "xorl %%ecx, %%ecx \n\t" -#else + #define FUNNY_Y_CODE \ + PREFETCH" 1024(%%esi) \n\t"\ + PREFETCH" 1056(%%esi) \n\t"\ + PREFETCH" 1088(%%esi) \n\t"\ "call funnyYCode \n\t"\ "movq temp0, %%mm2 \n\t"\ "xorl %%ecx, %%ecx \n\t" -#endif + FUNNY_Y_CODE FUNNY_Y_CODE FUNNY_Y_CODE @@ -1046,20 +1042,13 @@ inline static void hcscale(uint16_t *dst, int dstWidth, "xorl %%ebx, %%ebx \n\t" "movw %4, %%bx \n\t" // (xInc*4)&0xFFFF -#ifdef HAVE_MMX2 #define FUNNYUVCODE \ - "prefetchnta 1024(%%esi) \n\t"\ - "prefetchnta 1056(%%esi) \n\t"\ - "prefetchnta 1088(%%esi) \n\t"\ + PREFETCH" 1024(%%esi) \n\t"\ + PREFETCH" 1056(%%esi) \n\t"\ + PREFETCH" 1088(%%esi) \n\t"\ "call funnyUVCode \n\t"\ "movq temp0, %%mm2 \n\t"\ "xorl %%ecx, %%ecx \n\t" -#else -#define FUNNYUVCODE \ - "call funnyUVCode \n\t"\ - "movq temp0, %%mm2 \n\t"\ - "xorl %%ecx, %%ecx \n\t" -#endif FUNNYUVCODE FUNNYUVCODE @@ -1439,12 +1428,8 @@ else s_xinc2= s_xinc; g16Dither2= g16Dither; #endif } - -#ifdef HAVE_3DNOW - asm volatile("femms"); -#elif defined (HAVE_MMX) - asm volatile("emms"); -#endif +__asm __volatile(SFENCE:::"memory"); +__asm __volatile(EMMS:::"memory"); } |