aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2012-07-15 18:11:36 +0200
committerDiego Biurrun <diego@biurrun.de>2013-01-06 13:57:01 +0100
commit5b4dfbffc258f90a7d2540d21209ac23afcf7cd0 (patch)
treed4c35c183425b1b126efad13acf6f6232e2e5bad
parentde16f08e48a2e0dbd7311882d97fe379535c5a48 (diff)
downloadffmpeg-5b4dfbffc258f90a7d2540d21209ac23afcf7cd0.tar.gz
x86: ABS1: port to cpuflags
-rw-r--r--libavcodec/x86/dsputilenc.asm2
-rw-r--r--libavutil/x86/x86util.asm21
2 files changed, 9 insertions, 14 deletions
diff --git a/libavcodec/x86/dsputilenc.asm b/libavcodec/x86/dsputilenc.asm
index 104ec585e8..3bb1f2f4ed 100644
--- a/libavcodec/x86/dsputilenc.asm
+++ b/libavcodec/x86/dsputilenc.asm
@@ -257,11 +257,9 @@ hadamard8_16_wrapper 0, 14
%endmacro
INIT_MMX mmx
-%define ABS1 ABS1_MMX
HADAMARD8_DIFF
INIT_MMX mmxext
-%define ABS1 ABS1_MMXEXT
HADAMARD8_DIFF
INIT_XMM sse2
diff --git a/libavutil/x86/x86util.asm b/libavutil/x86/x86util.asm
index 16ee6cfe94..e24acdd940 100644
--- a/libavutil/x86/x86util.asm
+++ b/libavutil/x86/x86util.asm
@@ -172,11 +172,19 @@
psignw %1, %2
%endmacro
-%macro ABS1_MMX 2 ; a, tmp
+%macro ABS1 2
+%if cpuflag(ssse3)
+ pabsw %1, %1
+%elif cpuflag(mmxext) ; a, tmp
+ pxor %2, %2
+ psubw %2, %1
+ pmaxsw %1, %2
+%else ; a, tmp
pxor %2, %2
pcmpgtw %2, %1
pxor %1, %2
psubw %1, %2
+%endif
%endmacro
%macro ABS2_MMX 4 ; a, b, tmp0, tmp1
@@ -190,12 +198,6 @@
psubw %2, %4
%endmacro
-%macro ABS1_MMXEXT 2 ; a, tmp
- pxor %2, %2
- psubw %2, %1
- pmaxsw %1, %2
-%endmacro
-
%macro ABS2_MMXEXT 4 ; a, b, tmp0, tmp1
pxor %3, %3
pxor %4, %4
@@ -205,10 +207,6 @@
pmaxsw %2, %4
%endmacro
-%macro ABS1_SSSE3 2
- pabsw %1, %1
-%endmacro
-
%macro ABS2_SSSE3 4
pabsw %1, %1
pabsw %2, %2
@@ -254,7 +252,6 @@
ABS2 %3, %4, %5, %6
%endmacro
-%define ABS1 ABS1_MMX
%define ABS2 ABS2_MMX
%define ABSB ABSB_MMX
%define ABSB2 ABSB2_MMX