[FFmpeg-cvslog] x86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags

Diego Biurrun git at videolan.org
Wed Jan 16 11:49:28 CET 2013


ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Fri Jul 27 14:26:09 2012 +0200| [dae1d507af94261bafd3b11549884e5d1eca590e] | committer: Diego Biurrun

x86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dae1d507af94261bafd3b11549884e5d1eca590e
---

 libavcodec/x86/h264_chromamc.asm |    7 ++-----
 libavutil/x86/x86util.asm        |    8 ++++++++
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/libavcodec/x86/h264_chromamc.asm b/libavcodec/x86/h264_chromamc.asm
index 1be37de..440a473 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 2f818fe..551c40a 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



More information about the ffmpeg-cvslog mailing list