diff i386/h264dsp_mmx.c @ 2922:d772011258ec libavcodec

faster h264_chroma_mc8_mmx, added h264_chroma_mc4_mmx. 2-4% overall speedup.
author lorenm
date Thu, 27 Oct 2005 06:45:29 +0000
parents 3c79bc9f3aa9
children ef2149182f1c
line wrap: on
line diff
--- a/i386/h264dsp_mmx.c	Wed Oct 26 12:51:10 2005 +0000
+++ b/i386/h264dsp_mmx.c	Thu Oct 27 06:45:29 2005 +0000
@@ -892,22 +892,42 @@
 
 
 #define H264_CHROMA_OP(S,D)
+#define H264_CHROMA_OP4(S,D,T)
 #define H264_CHROMA_MC8_TMPL put_h264_chroma_mc8_mmx
+#define H264_CHROMA_MC4_TMPL put_h264_chroma_mc4_mmx
+#define H264_CHROMA_MC8_MV0 put_pixels8_mmx
 #include "dsputil_h264_template_mmx.c"
 #undef H264_CHROMA_OP
+#undef H264_CHROMA_OP4
 #undef H264_CHROMA_MC8_TMPL
+#undef H264_CHROMA_MC4_TMPL
+#undef H264_CHROMA_MC8_MV0
 
 #define H264_CHROMA_OP(S,D) "pavgb " #S ", " #D " \n\t"
+#define H264_CHROMA_OP4(S,D,T) "movd  " #S ", " #T " \n\t"\
+                               "pavgb " #T ", " #D " \n\t"
 #define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_mmx2
+#define H264_CHROMA_MC4_TMPL avg_h264_chroma_mc4_mmx2
+#define H264_CHROMA_MC8_MV0 avg_pixels8_mmx2
 #include "dsputil_h264_template_mmx.c"
 #undef H264_CHROMA_OP
+#undef H264_CHROMA_OP4
 #undef H264_CHROMA_MC8_TMPL
+#undef H264_CHROMA_MC4_TMPL
+#undef H264_CHROMA_MC8_MV0
 
 #define H264_CHROMA_OP(S,D) "pavgusb " #S ", " #D " \n\t"
+#define H264_CHROMA_OP4(S,D,T) "movd " #S ", " #T " \n\t"\
+                               "pavgusb " #T ", " #D " \n\t"
 #define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_3dnow
+#define H264_CHROMA_MC4_TMPL avg_h264_chroma_mc4_3dnow
+#define H264_CHROMA_MC8_MV0 avg_pixels8_3dnow
 #include "dsputil_h264_template_mmx.c"
 #undef H264_CHROMA_OP
+#undef H264_CHROMA_OP4
 #undef H264_CHROMA_MC8_TMPL
+#undef H264_CHROMA_MC4_TMPL
+#undef H264_CHROMA_MC8_MV0
 
 /***********************************/
 /* weighted prediction */