aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/x86/x86util.asm
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2010-09-17 01:56:06 +0000
committerRonald S. Bultje <rsbultje@gmail.com>2010-09-17 01:56:06 +0000
commite2e341048efe88954d742ea94c31a2c5a777d8ed (patch)
treed73832e9af6a83f50ed8245cd4e7953e9ab8386c /libavcodec/x86/x86util.asm
parentd0acc2d2e9cbc09b7f311589daf1c9c63dfce473 (diff)
downloadffmpeg-e2e341048efe88954d742ea94c31a2c5a777d8ed.tar.gz
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. Originally committed as revision 25137 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/x86/x86util.asm')
-rw-r--r--libavcodec/x86/x86util.asm20
1 files changed, 19 insertions, 1 deletions
diff --git a/libavcodec/x86/x86util.asm b/libavcodec/x86/x86util.asm
index 5dd65dca5c..7cabc70b31 100644
--- a/libavcodec/x86/x86util.asm
+++ b/libavcodec/x86/x86util.asm
@@ -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