Mercurial > libavcodec.hg
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