[x264-devel] MMX 10-bit predict_8x8c_h and predict_8x16c_h

Shitiz Garg git at videolan.org
Mon Jan 16 02:11:56 CET 2012


x264 | branch: master | Shitiz Garg <mail at dragooon.net> | Sat Dec  3 15:34:57 2011 -0800| [6d921c5bdefae1a733a3a4c29d88ea15fcece76e] | committer: Jason Garrett-Glaser

MMX 10-bit predict_8x8c_h and predict_8x16c_h
>From Google Code-In.

> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=6d921c5bdefae1a733a3a4c29d88ea15fcece76e
---

 common/x86/predict-a.asm |    8 +++++++-
 common/x86/predict-c.c   |    2 ++
 common/x86/predict.h     |    4 ++--
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/common/x86/predict-a.asm b/common/x86/predict-a.asm
index 15959a5..f87191c 100644
--- a/common/x86/predict-a.asm
+++ b/common/x86/predict-a.asm
@@ -1663,7 +1663,6 @@ PREDICT_8x16C_V
 ;-----------------------------------------------------------------------------
 %ifdef HIGH_BIT_DEPTH
 
-INIT_XMM sse2
 %macro PREDICT_C_H 1
 cglobal predict_8x%1c_h, 1,1
     add        r0, FDEC_STRIDEB*4
@@ -1672,11 +1671,18 @@ cglobal predict_8x%1c_h, 1,1
     movd       m0, [r0+FDEC_STRIDEB*Y-SIZEOF_PIXEL*2]
     SPLATW     m0, m0, 1
     mova [r0+FDEC_STRIDEB*Y], m0
+%if mmsize == 8
+    mova [r0+FDEC_STRIDEB*Y+8], m0
+%endif
 %assign Y Y+1
 %endrep
     RET
 %endmacro
 
+INIT_MMX mmx2
+PREDICT_C_H 8
+PREDICT_C_H 16
+INIT_XMM sse2
 PREDICT_C_H 8
 PREDICT_C_H 16
 
diff --git a/common/x86/predict-c.c b/common/x86/predict-c.c
index c168deb..8385ff9 100644
--- a/common/x86/predict-c.c
+++ b/common/x86/predict-c.c
@@ -338,6 +338,7 @@ void x264_predict_8x8c_init_mmx( int cpu, x264_predict_t pf[7] )
     if( !(cpu&X264_CPU_MMX2) )
         return;
     pf[I_PRED_CHROMA_DC]      = x264_predict_8x8c_dc_mmx2;
+    pf[I_PRED_CHROMA_H]       = x264_predict_8x8c_h_mmx2;
     if( !(cpu&X264_CPU_SSE2) )
         return;
     pf[I_PRED_CHROMA_V]       = x264_predict_8x8c_v_sse2;
@@ -386,6 +387,7 @@ void x264_predict_8x16c_init_mmx( int cpu, x264_predict_t pf[7] )
     if( !(cpu&X264_CPU_MMX2) )
         return;
     pf[I_PRED_CHROMA_DC]      = x264_predict_8x16c_dc_mmx2;
+    pf[I_PRED_CHROMA_H]       = x264_predict_8x16c_h_mmx2;
     if( !(cpu&X264_CPU_SSE2) )
         return;
     pf[I_PRED_CHROMA_V]       = x264_predict_8x16c_v_sse2;
diff --git a/common/x86/predict.h b/common/x86/predict.h
index 708830c..5d87cae 100644
--- a/common/x86/predict.h
+++ b/common/x86/predict.h
@@ -56,7 +56,7 @@ void x264_predict_8x16c_dc_top_mmx2( uint8_t *src );
 void x264_predict_8x16c_dc_top_sse2( uint16_t *src );
 void x264_predict_8x16c_v_mmx( uint8_t *src );
 void x264_predict_8x16c_v_sse2( uint16_t *src );
-void x264_predict_8x16c_h_mmx2( uint8_t *src );
+void x264_predict_8x16c_h_mmx2( pixel *src );
 void x264_predict_8x16c_h_sse2( pixel *src );
 void x264_predict_8x16c_h_ssse3( uint8_t *src );
 void x264_predict_8x8c_p_core_mmx2( uint8_t *src, int i00, int b, int c );
@@ -68,7 +68,7 @@ void x264_predict_8x8c_dc_top_mmx2( uint8_t *src );
 void x264_predict_8x8c_dc_top_sse2( uint16_t *src );
 void x264_predict_8x8c_v_mmx( pixel *src );
 void x264_predict_8x8c_v_sse2( uint16_t *src );
-void x264_predict_8x8c_h_mmx2( uint8_t *src );
+void x264_predict_8x8c_h_mmx2( pixel *src );
 void x264_predict_8x8c_h_sse2( pixel *src );
 void x264_predict_8x8c_h_ssse3( uint8_t *src );
 void x264_predict_8x8_v_mmx2( uint8_t *src, uint8_t edge[36] );



More information about the x264-devel mailing list