Mercurial > libavcodec.hg
diff x86/x86util.asm @ 12498:c997f09d1e10 libavcodec
Move hadamard_diff{,16}_{mmx,mmx2,sse2,ssse3}() from inline asm to yasm,
which will hopefully solve the Win64/FATE failures caused by these functions.
author | rbultje |
---|---|
date | Fri, 17 Sep 2010 01:56:06 +0000 |
parents | 846779f6b164 |
children |
line wrap: on
line diff
--- a/x86/x86util.asm Fri Sep 17 01:44:17 2010 +0000 +++ b/x86/x86util.asm Fri Sep 17 01:56:06 2010 +0000 @@ -148,12 +148,30 @@ %endmacro %macro ABS1_MMX 2 ; a, tmp + pxor %2, %2 + pcmpgtw %2, %1 + pxor %1, %2 + psubw %1, %2 +%endmacro + +%macro ABS2_MMX 4 ; a, b, tmp0, tmp1 + pxor %3, %3 + pxor %4, %4 + pcmpgtw %3, %1 + pcmpgtw %4, %2 + pxor %1, %3 + pxor %2, %4 + psubw %1, %3 + psubw %2, %4 +%endmacro + +%macro ABS1_MMX2 2 ; a, tmp pxor %2, %2 psubw %2, %1 pmaxsw %1, %2 %endmacro -%macro ABS2_MMX 4 ; a, b, tmp0, tmp1 +%macro ABS2_MMX2 4 ; a, b, tmp0, tmp1 pxor %3, %3 pxor %4, %4 psubw %3, %1