swscale: use emms_c().
authorRonald S. Bultje <rsbultje@gmail.com>
Tue, 24 May 2011 17:04:46 +0000 (13:04 -0400)
committerRonald S. Bultje <rsbultje@gmail.com>
Tue, 24 May 2011 18:48:49 +0000 (14:48 -0400)
libswscale/utils.c
libswscale/x86/swscale_template.c

index b49ec89..29fc975 100644 (file)
@@ -193,8 +193,7 @@ static int initFilter(int16_t **outFilter, int16_t **filterPos, int *outFilterSi
     const int64_t fone= 1LL<<54;
     int ret= -1;
 
-    if (HAVE_MMX && cpu_flags & AV_CPU_FLAG_MMX)
-        __asm__ volatile("emms\n\t"::: "memory"); //FIXME this should not be required but it IS (even for non-MMX versions)
+    emms_c(); //FIXME this should not be required but it IS (even for non-MMX versions)
 
     // NOTE: the +1 is for the MMX scaler which reads over the end
     FF_ALLOC_OR_GOTO(NULL, *filterPos, (dstW+1)*sizeof(int16_t), fail);
@@ -757,8 +756,7 @@ int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter)
 
     cpu_flags = av_get_cpu_flags();
     flags     = c->flags;
-    if (HAVE_MMX && cpu_flags & AV_CPU_FLAG_MMX)
-        __asm__ volatile("emms\n\t"::: "memory");
+    emms_c();
     if (!rgb15to16) sws_rgb2rgb_init();
 
     unscaled = (srcW == dstW && srcH == dstH);
index e03fbd4..576e22c 100644 (file)
@@ -2494,7 +2494,7 @@ static int RENAME(swScale)(SwsContext *c, const uint8_t* src[], int srcStride[],
         fillPlane(dst[3], dstStride[3], dstW, dstY-lastDstY, lastDstY, 255);
 
     if (COMPILE_TEMPLATE_MMX2)      __asm__ volatile("sfence":::"memory");
-    __asm__ volatile("emms"  :::"memory");
+    emms_c();
 
     /* store changed local vars back in the context */
     c->dstY= dstY;