---
 libavcodec/x86/vc1dsp_yasm.asm |    3 ---
 libavutil/x86/x86util.asm      |   22 ++++++++++------------
 2 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/libavcodec/x86/vc1dsp_yasm.asm b/libavcodec/x86/vc1dsp_yasm.asm
index a1962c5..2023ff3 100644
--- a/libavcodec/x86/vc1dsp_yasm.asm
+++ b/libavcodec/x86/vc1dsp_yasm.asm
@@ -268,7 +268,6 @@ cglobal vc1_h_loop_filter8, 3, 5, 0
 %endmacro
 
 INIT_MMX mmxext
-%define PABSW PABSW_MMXEXT
 VC1_LF
 
 INIT_XMM sse2
@@ -284,8 +283,6 @@ cglobal vc1_h_loop_filter8, 3, 6, 8
     VC1_H_LOOP_FILTER 8, r5
     RET
 
-%define PABSW PABSW_SSSE3
-
 INIT_MMX ssse3
 ; void ff_vc1_v_loop_filter4_ssse3(uint8_t *src, int stride, int pq)
 cglobal vc1_v_loop_filter4, 3, 5, 0
diff --git a/libavutil/x86/x86util.asm b/libavutil/x86/x86util.asm
index 18c804c..b844131 100644
--- a/libavutil/x86/x86util.asm
+++ b/libavutil/x86/x86util.asm
@@ -143,13 +143,21 @@
 %endif
 %endmacro
 
-; PABSW macros assume %1 != %2, while ABS1/2 macros work in-place
-%macro PABSW_MMX 2
+; PABSW macro assumes %1 != %2, while ABS1/2 macros work in-place
+%macro PABSW 2
+%if cpuflag(ssse3)
+    pabsw      %1, %2
+%elif cpuflag(mmxext)
+    pxor    %1, %1
+    psubw   %1, %2
+    pmaxsw  %1, %2
+%else
     pxor       %1, %1
     pcmpgtw    %1, %2
     pxor       %2, %1
     psubw      %2, %1
     SWAP       %1, %2
+%endif
 %endmacro
 
 %macro PSIGNW_MMX 2
@@ -157,16 +165,6 @@
     psubw      %1, %2
 %endmacro
 
-%macro PABSW_MMXEXT 2
-    pxor    %1, %1
-    psubw   %1, %2
-    pmaxsw  %1, %2
-%endmacro
-
-%macro PABSW_SSSE3 2
-    pabsw      %1, %2
-%endmacro
-
 %macro PSIGNW_SSSE3 2
     psignw     %1, %2
 %endmacro
-- 
1.7.2.5

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to