diff i386/dsputil_mmx.c @ 2732:473ee06ec3a1 libavcodec

MMX code for (put|avg)_h264_chroma_mc8
author hzoli
date Wed, 25 May 2005 08:05:41 +0000
parents 360024d31dab
children 42d3e9068e32
line wrap: on
line diff
--- a/i386/dsputil_mmx.c	Tue May 24 14:21:42 2005 +0000
+++ b/i386/dsputil_mmx.c	Wed May 25 08:05:41 2005 +0000
@@ -3078,6 +3078,30 @@
 H264_MC(avg_, 8, mmx2)
 H264_MC(avg_, 16,mmx2)
 
+
+/** These are used by *_h264_chroma_mc8_* */
+static const uint64_t thirtytwo __align8 = 0x0020002000200020ULL;
+static const uint64_t sixtyfour __align8 = 0x0040004000400040ULL;
+
+#define H264_CHROMA_OP(S,D)
+#define H264_CHROMA_MC8_TMPL put_h264_chroma_mc8_mmx
+#include "dsputil_h264_template_mmx.c"
+#undef H264_CHROMA_OP
+#undef H264_CHROMA_MC8_TMPL
+
+#define H264_CHROMA_OP(S,D) "pavgb " #S ", " #D " \n\t"
+#define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_mmx2
+#include "dsputil_h264_template_mmx.c"
+#undef H264_CHROMA_OP
+#undef H264_CHROMA_MC8_TMPL
+
+#define H264_CHROMA_OP(S,D) "pavgusb " #S ", " #D " \n\t"
+#define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_3dnow
+#include "dsputil_h264_template_mmx.c"
+#undef H264_CHROMA_OP
+#undef H264_CHROMA_MC8_TMPL
+
+
 #if 0
 static void just_return() { return; }
 #endif
@@ -3377,6 +3401,7 @@
 
         c->h263_v_loop_filter= h263_v_loop_filter_mmx;
         c->h263_h_loop_filter= h263_h_loop_filter_mmx;        
+	c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_mmx;
         
         if (mm_flags & MM_MMXEXT) {
             c->put_pixels_tab[0][1] = put_pixels16_x2_mmx2;
@@ -3473,6 +3498,7 @@
             dspfunc(avg_h264_qpel, 2, 4);
 #undef dspfunc
 
+	    c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_mmx2;
             c->h264_v_loop_filter_luma= h264_v_loop_filter_luma_mmx2;
             c->h264_h_loop_filter_luma= h264_h_loop_filter_luma_mmx2;
             c->h264_v_loop_filter_chroma= h264_v_loop_filter_chroma_mmx2;
@@ -3564,6 +3590,8 @@
             dspfunc(avg_h264_qpel, 0, 16);
             dspfunc(avg_h264_qpel, 1, 8);
             dspfunc(avg_h264_qpel, 2, 4);
+
+	    c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_3dnow;
         }
     }