aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2012-07-27 14:26:09 +0200
committerDiego Biurrun <diego@biurrun.de>2013-01-15 17:29:43 +0100
commitdae1d507af94261bafd3b11549884e5d1eca590e (patch)
tree8ddd73e3a9a8ab999c68b5d47b327b19e1d51ca8
parent23098bbd509346708b998094daf1dd98339fbc4b (diff)
downloadffmpeg-dae1d507af94261bafd3b11549884e5d1eca590e.tar.gz
x86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags
-rw-r--r--libavcodec/x86/h264_chromamc.asm7
-rw-r--r--libavutil/x86/x86util.asm8
2 files changed, 10 insertions, 5 deletions
diff --git a/libavcodec/x86/h264_chromamc.asm b/libavcodec/x86/h264_chromamc.asm
index 1be37dec78..440a473c6f 100644
--- a/libavcodec/x86/h264_chromamc.asm
+++ b/libavcodec/x86/h264_chromamc.asm
@@ -427,11 +427,11 @@ cglobal %1_%2_chroma_mc2, 6, 7, 0
%macro NOTHING 2-3
%endmacro
%macro DIRECT_AVG 2
- PAVG %1, %2
+ PAVGB %1, %2
%endmacro
%macro COPY_AVG 3
movd %2, %3
- PAVG %1, %2
+ PAVGB %1, %2
%endmacro
INIT_MMX mmx
@@ -448,7 +448,6 @@ chroma_mc2_mmx_func put, h264
%define CHROMAMC_AVG DIRECT_AVG
%define CHROMAMC_AVG4 COPY_AVG
-%define PAVG pavgb
chroma_mc8_mmx_func avg, h264, _rnd
chroma_mc8_mmx_func avg, vc1, _nornd
chroma_mc8_mmx_func avg, rv40
@@ -456,7 +455,6 @@ chroma_mc4_mmx_func avg, h264
chroma_mc4_mmx_func avg, rv40
chroma_mc2_mmx_func avg, h264
-%define PAVG pavgusb
INIT_MMX 3dnow
chroma_mc8_mmx_func avg, h264, _rnd
chroma_mc8_mmx_func avg, vc1, _nornd
@@ -673,7 +671,6 @@ INIT_MMX ssse3
chroma_mc4_ssse3_func put, h264
%define CHROMAMC_AVG DIRECT_AVG
-%define PAVG pavgb
INIT_XMM ssse3
chroma_mc8_ssse3_func avg, h264, _rnd
chroma_mc8_ssse3_func avg, vc1, _nornd
diff --git a/libavutil/x86/x86util.asm b/libavutil/x86/x86util.asm
index 2f818fe61e..551c40a4b5 100644
--- a/libavutil/x86/x86util.asm
+++ b/libavutil/x86/x86util.asm
@@ -301,6 +301,14 @@
%endif
%endmacro
+%macro PAVGB 2
+%if cpuflag(mmxext)
+ pavgb %1, %2
+%elif cpuflag(3dnow)
+ pavgusb %1, %2
+%endif
+%endmacro
+
%macro PSHUFLW 1+
%if mmsize == 8
pshufw %1