]> git.sesse.net Git - vlc/commitdiff
I422_YUY2: clobber lists for MMX and SSE2
authorRémi Denis-Courmont <remi@remlab.net>
Sat, 26 Nov 2011 18:22:41 +0000 (20:22 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Sat, 26 Nov 2011 18:22:41 +0000 (20:22 +0200)
modules/video_chroma/i422_yuy2.c
modules/video_chroma/i422_yuy2.h

index 74eb2dc6955009ce0aa3ff5e24edbcc5004d9eb0..81b8beb9a38503b7cd2d548de6bb3686c9760af6 100644 (file)
@@ -72,14 +72,17 @@ vlc_module_begin ()
     set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) )
     set_capability( "video filter2", 80 )
 # define CPU_CAPABILITY 0
+# define VLC_TARGET
 #elif defined (MODULE_NAME_IS_i422_yuy2_mmx)
     set_description( N_("MMX conversions from " SRC_FOURCC " to " DEST_FOURCC) )
     set_capability( "video filter2", 100 )
 # define CPU_CAPABILITY CPU_CAPABILITY_MMX
+# define VLC_TARGET VLC_MMX
 #elif defined (MODULE_NAME_IS_i422_yuy2_sse2)
     set_description( N_("SSE2 conversions from " SRC_FOURCC " to " DEST_FOURCC) )
     set_capability( "video filter2", 120 )
 # define CPU_CAPABILITY CPU_CAPABILITY_SSE2
+# define VLC_TARGET VLC_SSE
 #endif
     set_callbacks( Activate, NULL )
 vlc_module_end ()
@@ -159,6 +162,7 @@ VIDEO_FILTER_WRAPPER( I422_Y211 )
 /*****************************************************************************
  * I422_YUY2: planar YUV 4:2:2 to packed YUY2 4:2:2
  *****************************************************************************/
+VLC_TARGET
 static void I422_YUY2( filter_t *p_filter, picture_t *p_source,
                                            picture_t *p_dest )
 {
@@ -252,6 +256,7 @@ static void I422_YUY2( filter_t *p_filter, picture_t *p_source,
 /*****************************************************************************
  * I422_YVYU: planar YUV 4:2:2 to packed YVYU 4:2:2
  *****************************************************************************/
+VLC_TARGET
 static void I422_YVYU( filter_t *p_filter, picture_t *p_source,
                                            picture_t *p_dest )
 {
@@ -345,6 +350,7 @@ static void I422_YVYU( filter_t *p_filter, picture_t *p_source,
 /*****************************************************************************
  * I422_UYVY: planar YUV 4:2:2 to packed UYVY 4:2:2
  *****************************************************************************/
+VLC_TARGET
 static void I422_UYVY( filter_t *p_filter, picture_t *p_source,
                                            picture_t *p_dest )
 {
@@ -449,6 +455,7 @@ static void I422_IUYV( filter_t *p_filter, picture_t *p_source,
 /*****************************************************************************
  * I422_cyuv: planar YUV 4:2:2 to upside-down packed UYVY 4:2:2
  *****************************************************************************/
+VLC_TARGET
 static void I422_cyuv( filter_t *p_filter, picture_t *p_source,
                                            picture_t *p_dest )
 {
index 52ad7e4c3fd571c65b319714141afcceb4ad58d6..54928eabaddccdd2f883d4b50b70bf4168a2ff53 100644 (file)
@@ -35,7 +35,8 @@
         MMX_INSTRUCTIONS                    \
         :                                   \
         : "r" (p_line), "r" (p_y),          \
-          "r" (p_u), "r" (p_v) );           \
+          "r" (p_u), "r" (p_v)              \
+        : "mm0", "mm1", "mm2" );            \
         p_line += 16; p_y += 8;             \
         p_u += 4; p_v += 4;                 \
     } while(0)
@@ -145,7 +146,8 @@ movq      %%mm1, 8(%0)  # Store high UYVY                                 \n\
         MMX_INSTRUCTIONS                    \
         :                                   \
         : "r" (p_line), "r" (p_y),          \
-          "r" (p_u), "r" (p_v) );           \
+          "r" (p_u), "r" (p_v)              \
+        : "xmm0", "xmm1", "xmm2" );         \
         p_line += 32; p_y += 16;            \
         p_u += 8; p_v += 8;                 \
     } while(0)