diff x86/x86util.asm @ 12144:846779f6b164 libavcodec

MMX/SSE VC1 loop filter
author conrad
date Sun, 11 Jul 2010 22:53:01 +0000
parents d780ae746855
children c997f09d1e10
line wrap: on
line diff
--- a/x86/x86util.asm	Sun Jul 11 22:52:55 2010 +0000
+++ b/x86/x86util.asm	Sun Jul 11 22:53:01 2010 +0000
@@ -119,6 +119,34 @@
 %endif
 %endmacro
 
+; PABSW macros assume %1 != %2, while ABS1/2 macros work in-place
+%macro PABSW_MMX 2
+    pxor       %1, %1
+    pcmpgtw    %1, %2
+    pxor       %2, %1
+    psubw      %2, %1
+    SWAP       %1, %2
+%endmacro
+
+%macro PSIGNW_MMX 2
+    pxor       %1, %2
+    psubw      %1, %2
+%endmacro
+
+%macro PABSW_MMX2 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
+
 %macro ABS1_MMX 2    ; a, tmp
     pxor    %2, %2
     psubw   %2, %1