x86: SPLATD: port to cpuflags
authorDiego Biurrun <diego@biurrun.de>
Sun, 15 Jul 2012 16:33:59 +0000 (18:33 +0200)
committerDiego Biurrun <diego@biurrun.de>
Sun, 18 Nov 2012 17:34:05 +0000 (18:34 +0100)
libavcodec/x86/dsputil.asm
libavcodec/x86/fmtconvert.asm
libavutil/x86/x86util.asm
libswscale/x86/output.asm

index de54540..726d4c6 100644 (file)
@@ -1124,11 +1124,9 @@ cglobal vector_clip_int32%5, 5,5,%1, dst, src, min, max, len
 %endmacro
 
 INIT_MMX mmx
 %endmacro
 
 INIT_MMX mmx
-%define SPLATD SPLATD_MMX
 %define CLIPD CLIPD_MMX
 VECTOR_CLIP_INT32 0, 1, 0, 0
 INIT_XMM sse2
 %define CLIPD CLIPD_MMX
 VECTOR_CLIP_INT32 0, 1, 0, 0
 INIT_XMM sse2
-%define SPLATD SPLATD_SSE2
 VECTOR_CLIP_INT32 6, 1, 0, 0, _int
 %define CLIPD CLIPD_SSE2
 VECTOR_CLIP_INT32 6, 2, 0, 1
 VECTOR_CLIP_INT32 6, 1, 0, 0, _int
 %define CLIPD CLIPD_SSE2
 VECTOR_CLIP_INT32 6, 2, 0, 1
index 77b8bd7..8267bd4 100644 (file)
@@ -72,12 +72,9 @@ cglobal int32_to_float_fmul_scalar, 4, 4, %1, dst, src, mul, len
 %endmacro
 
 INIT_XMM sse
 %endmacro
 
 INIT_XMM sse
-%define SPLATD SPLATD_SSE
 INT32_TO_FLOAT_FMUL_SCALAR 5
 INIT_XMM sse2
 INT32_TO_FLOAT_FMUL_SCALAR 5
 INIT_XMM sse2
-%define SPLATD SPLATD_SSE2
 INT32_TO_FLOAT_FMUL_SCALAR 3
 INT32_TO_FLOAT_FMUL_SCALAR 3
-%undef SPLATD
 
 
 ;------------------------------------------------------------------------------
 
 
 ;------------------------------------------------------------------------------
index 40d8763..d3c0d86 100644 (file)
 %endif
 %endmacro
 
 %endif
 %endmacro
 
-%macro SPLATD 2-3 0
-%if mmsize == 16
-    pshufd %1, %2, (%3)*0x55
-%else
-    pshufw %1, %2, (%3)*0x11 + ((%3)+1)*0x44
-%endif
-%endmacro
-
-%macro SPLATD_MMX 1
+%macro SPLATD 1
+%if mmsize == 8
     punpckldq  %1, %1
     punpckldq  %1, %1
-%endmacro
-
-%macro SPLATD_SSE 1
-    shufps  %1, %1, 0
-%endmacro
-
-%macro SPLATD_SSE2 1
+%elif cpuflag(sse2)
     pshufd  %1, %1, 0
     pshufd  %1, %1, 0
+%elif cpuflag(sse)
+    shufps  %1, %1, 0
+%endif
 %endmacro
 
 %macro CLIPW 3 ;(dst, min, max)
 %endmacro
 
 %macro CLIPW 3 ;(dst, min, max)
index d137e6e..e1ceded 100644 (file)
@@ -187,7 +187,7 @@ cglobal yuv2planeX_%1, %3, 8, %2, filter, fltsize, src, dst, w, dither, offset
 %else ; %1 == 10/9/8
     punpcklwd       m5,  m3,  m4
     punpckhwd       m3,  m4
 %else ; %1 == 10/9/8
     punpcklwd       m5,  m3,  m4
     punpckhwd       m3,  m4
-    SPLATD          m0,  m0
+    SPLATD          m0
 
     pmaddwd         m5,  m0
     pmaddwd         m3,  m0
 
     pmaddwd         m5,  m0
     pmaddwd         m3,  m0