<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><DIV>It right now, except last reduce copy, need not new patch<BR><BR>At 2014-01-15 21:49:59,dnyaneshwar@multicorewareinc.com wrote:<BR>># HG changeset patch<BR>># User Dnyaneshwar G <dnyaneshwar@multicorewareinc.com><BR>># Date 1389793733 -19800<BR>>#      Wed Jan 15 19:18:53 2014 +0530<BR>># Node ID fec35802092cec9416924eabc072ee0993df34e1<BR>># Parent  27c2dac98a3c34e6e1b03960d296ef8f2295fefd<BR>>asm: code for intra_pred[BLOCK_32x32] mode 2 and 34<BR>><BR>>diff -r 27c2dac98a3c -r fec35802092c source/common/x86/asm-primitives.cpp<BR>>--- a/source/common/x86/asm-primitives.cpp   Tue Dec 17 13:14:20 2013 +0530<BR>>+++ b/source/common/x86/asm-primitives.cpp    Wed Jan 15 19:18:53 2014 +0530<BR>>@@ -554,6 +554,9 @@<BR>> #define SETUP_INTRA_ANG16(mode, fno, cpu) \<BR>>     p.intra_pred[BLOCK_16x16][mode] = x265_intra_pred_ang16_ ## fno ## _ ## cpu;<BR>> <BR>>+#define SETUP_INTRA_ANG32(mode, fno, cpu) \<BR>>+    p.intra_pred[BLOCK_32x32][mode] = x265_intra_pred_ang32_ ## fno ## _ ## cpu;<BR>>+<BR>> namespace x265 {<BR>> // private x265 namespace<BR>> void Setup_Assembly_Primitives(EncoderPrimitives &p, int cpuMask)<BR>>@@ -896,6 +899,8 @@<BR>>         SETUP_INTRA_ANG8(34, 2, ssse3);<BR>>         SETUP_INTRA_ANG16(2, 2, ssse3);<BR>>         SETUP_INTRA_ANG16(34, 2, ssse3);<BR>>+        SETUP_INTRA_ANG32(2, 2, ssse3);<BR>>+        SETUP_INTRA_ANG32(34, 2, ssse3);<BR>> <BR>>         p.scale1D_128to64 = x265_scale1D_128to64_ssse3;<BR>>         p.scale2D_64to32 = x265_scale2D_64to32_ssse3;<BR>>diff -r 27c2dac98a3c -r fec35802092c source/common/x86/intrapred.h<BR>>--- a/source/common/x86/intrapred.h       Tue Dec 17 13:14:20 2013 +0530<BR>>+++ b/source/common/x86/intrapred.h   Wed Jan 15 19:18:53 2014 +0530<BR>>@@ -95,6 +95,25 @@<BR>> DECL_ANG(16, 18, sse4);<BR>> DECL_ANG(16, 26, sse4);<BR>> <BR>>+DECL_ANG(32, 2, ssse3);<BR>>+DECL_ANG(32, 3, sse4);<BR>>+DECL_ANG(32, 4, sse4);<BR>>+DECL_ANG(32, 5, sse4);<BR>>+DECL_ANG(32, 6, sse4);<BR>>+DECL_ANG(32, 7, sse4);<BR>>+DECL_ANG(32, 8, sse4);<BR>>+DECL_ANG(32, 9, sse4);<BR>>+DECL_ANG(32, 10, sse4);<BR>>+DECL_ANG(32, 11, sse4);<BR>>+DECL_ANG(32, 12, sse4);<BR>>+DECL_ANG(32, 13, sse4);<BR>>+DECL_ANG(32, 14, sse4);<BR>>+DECL_ANG(32, 15, sse4);<BR>>+DECL_ANG(32, 16, sse4);<BR>>+DECL_ANG(32, 17, sse4);<BR>>+DECL_ANG(32, 18, sse4);<BR>>+DECL_ANG(32, 26, sse4);<BR>>+<BR>> #undef DECL_ANG<BR>> void x265_all_angs_pred_4x4_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma);<BR>> void x265_all_angs_pred_8x8_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma);<BR>>diff -r 27c2dac98a3c -r fec35802092c source/common/x86/intrapred8.asm<BR>>--- a/source/common/x86/intrapred8.asm       Tue Dec 17 13:14:20 2013 +0530<BR>>+++ b/source/common/x86/intrapred8.asm        Wed Jan 15 19:18:53 2014 +0530<BR>>@@ -1182,6 +1182,168 @@<BR>>     movu            [r0 + r1], m2<BR>>     RET<BR>> <BR>>+<BR>>+;---------------------------------------------------------------------------------------------------------------<BR>>+; void intraPredAng32(pixel* dst, intptr_t dstStride, pixel *refLeft, pixel *refAbove, int dirMode, int bFilter)<BR>>+;---------------------------------------------------------------------------------------------------------------<BR>>+INIT_XMM ssse3<BR>>+cglobal intra_pred_ang32_2, 3,4,4<BR>>+    cmp             r4m, byte 34<BR>>+    cmove           r2, r3mp<BR>>+    movu            m0, [r2 + 2]<BR>>+    movu            m1, [r2 + 18]<BR>>+    movu            m3, [r2 + 34]<BR>>+<BR>>+    lea             r3, [r1 * 3]<BR>>+<BR>>+    movu            [r0], m0<BR>>+    movu            [r0 + 16], m1<BR>>+    palignr         m2, m1, m0, 1<BR>>+    movu            [r0 + r1], m2<BR>>+    palignr         m2, m3, m1, 1<BR>>+    movu            [r0 + r1 + 16], m2<BR>>+    palignr         m2, m1, m0, 2<BR>>+    movu            [r0 + r1 * 2], m2<BR>>+    palignr         m2, m3, m1, 2<BR>>+    movu            [r0 + r1 * 2 + 16], m2<BR>>+    palignr         m2, m1, m0, 3<BR>>+    movu            [r0 + r3], m2<BR>>+    palignr         m2, m3, m1, 3<BR>>+    movu            [r0 + r3 + 16], m2<BR>>+<BR>>+    lea             r0, [r0 + r1 * 4]<BR>>+<BR>>+    palignr         m2, m1, m0, 4<BR>>+    movu            [r0], m2<BR>>+    palignr         m2, m3, m1, 4<BR>>+    movu            [r0 + 16], m2<BR>>+    palignr         m2, m1, m0, 5<BR>>+    movu            [r0 + r1], m2<BR>>+    palignr         m2, m3, m1, 5<BR>>+    movu            [r0 + r1 + 16], m2<BR>>+    palignr         m2, m1, m0, 6<BR>>+    movu            [r0 + r1 * 2], m2<BR>>+    palignr         m2, m3, m1, 6<BR>>+    movu            [r0 + r1 * 2 + 16], m2<BR>>+    palignr         m2, m1, m0, 7<BR>>+    movu            [r0 + r3], m2<BR>>+    palignr         m2, m3, m1, 7<BR>>+    movu            [r0 + r3 + 16], m2<BR>>+<BR>>+    lea             r0, [r0 + r1 * 4]<BR>>+<BR>>+    palignr         m2, m1, m0, 8<BR>>+    movu            [r0], m2<BR>>+    palignr         m2, m3, m1, 8<BR>>+    movu            [r0 + 16], m2<BR>>+    palignr         m2, m1, m0, 9<BR>>+    movu            [r0 + r1], m2<BR>>+    palignr         m2, m3, m1, 9<BR>>+    movu            [r0 + r1 + 16], m2<BR>>+    palignr         m2, m1, m0, 10<BR>>+    movu            [r0 + r1 * 2], m2<BR>>+    palignr         m2, m3, m1, 10<BR>>+    movu            [r0 + r1 * 2 + 16], m2<BR>>+    palignr         m2, m1, m0, 11<BR>>+    movu            [r0 + r3], m2<BR>>+    palignr         m2, m3, m1, 11<BR>>+    movu            [r0 + r3 + 16], m2<BR>>+<BR>>+    lea             r0, [r0 + r1 * 4]<BR>>+<BR>>+    palignr         m2, m1, m0, 12<BR>>+    movu            [r0], m2<BR>>+    palignr         m2, m3, m1, 12<BR>>+    movu            [r0 + 16], m2<BR>>+    palignr         m2, m1, m0, 13<BR>>+    movu            [r0 + r1], m2<BR>>+    palignr         m2, m3, m1, 13<BR>>+    movu            [r0 + r1 + 16], m2<BR>>+    palignr         m2, m1, m0, 14<BR>>+    movu            [r0 + r1 * 2], m2<BR>>+    palignr         m2, m3, m1, 14<BR>>+    movu            [r0 + r1 * 2 + 16], m2<BR>>+    palignr         m2, m1, m0, 15<BR>>+    movu            [r0 + r3], m2<BR>>+    palignr         m2, m3, m1, 15<BR>>+    movu            [r0 + r3 + 16], m2<BR>>+<BR>>+    lea             r0, [r0 + r1 * 4]<BR>>+<BR>>+    movu            [r0], m1<BR>>+    movu            m0, [r2 + 50]<BR>>+    movu            [r0 + 16], m3<BR>>+    palignr         m2, m3, m1, 1<BR>>+    movu            [r0 + r1], m2<BR>>+    palignr         m2, m0, m3, 1<BR>>+    movu            [r0 + r1 + 16], m2<BR>>+    palignr         m2, m3, m1, 2<BR>>+    movu            [r0 + r1 * 2], m2<BR>>+    palignr         m2, m0, m3, 2<BR>>+    movu            [r0 + r1 * 2 + 16], m2<BR>>+    palignr         m2, m3, m1, 3<BR>>+    movu            [r0 + r3], m2<BR>>+    palignr         m2, m0, m3, 3<BR>>+    movu            [r0 + r3 + 16], m2<BR>>+<BR>>+    lea             r0, [r0 + r1 * 4]<BR>>+<BR>>+    palignr         m2, m3, m1, 4<BR>>+    movu            [r0], m2<BR>>+    palignr         m2, m0, m3, 4<BR>>+    movu            [r0 + 16], m2<BR>>+    palignr         m2, m3, m1, 5<BR>>+    movu            [r0 + r1], m2<BR>>+    palignr         m2, m0, m3, 5<BR>>+    movu            [r0 + r1 + 16], m2<BR>>+    palignr         m2, m3, m1, 6<BR>>+    movu            [r0 + r1 * 2], m2<BR>>+    palignr         m2, m0, m3, 6<BR>>+    movu            [r0 + r1 * 2 + 16], m2<BR>>+    palignr         m2, m3, m1, 7<BR>>+    movu            [r0 + r3], m2<BR>>+    palignr         m2, m0, m3, 7<BR>>+    movu            [r0 + r3 + 16], m2<BR>>+<BR>>+    lea             r0, [r0 + r1 * 4]<BR>>+<BR>>+    palignr         m2, m3, m1, 8<BR>>+    movu            [r0], m2<BR>>+    palignr         m2, m0, m3, 8<BR>>+    movu            [r0 + 16], m2<BR>>+    palignr         m2, m3, m1, 9<BR>>+    movu            [r0 + r1], m2<BR>>+    palignr         m2, m0, m3, 9<BR>>+    movu            [r0 + r1 + 16], m2<BR>>+    palignr         m2, m3, m1, 10<BR>>+    movu            [r0 + r1 * 2], m2<BR>>+    palignr         m2, m0, m3, 10<BR>>+    movu            [r0 + r1 * 2 + 16], m2<BR>>+    palignr         m2, m3, m1, 11<BR>>+    movu            [r0 + r3], m2<BR>>+    palignr         m2, m0, m3, 11<BR>>+    movu            [r0 + r3 + 16], m2<BR>>+<BR>>+    lea             r0, [r0 + r1 * 4]<BR>>+<BR>>+    palignr         m2, m3, m1, 12<BR>>+    movu            [r0], m2<BR>>+    palignr         m2, m0, m3, 12<BR>>+    movu            [r0 + 16], m2<BR>>+    palignr         m2, m3, m1, 13<BR>>+    movu            [r0 + r1], m2<BR>>+    palignr         m2, m0, m3, 13<BR>>+    movu            [r0 + r1 + 16], m2<BR>>+    palignr         m2, m3, m1, 14<BR>>+    movu            [r0 + r1 * 2], m2<BR>>+    palignr         m2, m0, m3, 14<BR>>+    movu            [r0 + r1 * 2 + 16], m2<BR>>+    palignr         m2, m3, m1, 15<BR>>+    movu            [r0 + r3], m2<BR>>+    palignr         m2, m0, m3, 15<BR>>+    movu            [r0 + r3 + 16], m2<BR>>+    RET<BR>>+<BR>> ;-----------------------------------------------------------------------------<BR>> ; void all_angs_pred_4x4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma)<BR>> ;-----------------------------------------------------------------------------<BR>>_______________________________________________<BR>>x265-devel mailing list<BR>>x265-devel@videolan.org<BR>>https://mailman.videolan.org/listinfo/x265-devel<BR></DIV></div>