<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div>right, a few improve because you need more register, it generate push/pop stack operators</div>
<div><br>At 2015-02-03 14:28:43,praveen@multicorewareinc.com wrote:<br>># HG changeset patch<br>># User Praveen Tiwari<br>># Date 1422944898 -19800<br>># Node ID 059892f65db3e4c70017241ea847717e11be0124<br>># Parent  b0be54fb45cf1cbd3bf5a0543da34fb1a854b25f<br>>blockcopy_pp[4x16:4x32], sse2 asm code optimization<br>><br>>improved, 222.93c -> 206.77c<br>>          409.49c -> 392.13c<br>><br>>diff -r b0be54fb45cf -r 059892f65db3 source/common/x86/blockcopy8.asm<br>>--- a/source/common/x86/blockcopy8.asm Tue Feb 03 11:25:35 2015 +0530<br>>+++ b/source/common/x86/blockcopy8.asm        Tue Feb 03 11:58:18 2015 +0530<br>>@@ -181,37 +181,36 @@<br>> ;-----------------------------------------------------------------------------<br>> %macro BLOCKCOPY_PP_W4_H8 2<br>> INIT_XMM sse2<br>>-cglobal blockcopy_pp_%1x%2, 4, 5, 4<br>>+cglobal blockcopy_pp_%1x%2, 4, 7, 4<br>>     mov    r4d,    %2/8<br>>+    lea    r5,     [3 * r1]<br>>+    lea    r6,     [3 * r3]<br>>+<br>> .loop:<br>>     movd     m0,     [r2]<br>>     movd     m1,     [r2 + r3]<br>>-    lea      r2,     [r2 + 2 * r3]<br>>-    movd     m2,     [r2]<br>>-    movd     m3,     [r2 + r3]<br>>-<br>>-    movd     [r0],                m0<br>>-    movd     [r0 + r1],           m1<br>>-    lea      r0,                  [r0 + 2 * r1]<br>>-    movd     [r0],                m2<br>>-    movd     [r0 + r1],           m3<br>>-<br>>-    lea       r0,     [r0 + 2 * r1]<br>>-    lea       r2,     [r2 + 2 * r3]<br>>+    movd     m2,     [r2 + 2 * r3]<br>>+    movd     m3,     [r2 + r6]<br>>+<br>>+    movd     [r0],          m0<br>>+    movd     [r0 + r1],     m1<br>>+    movd     [r0 + 2 * r1], m2<br>>+    movd     [r0 + r5],     m3<br>>+<br>>+    lea      r2,     [r2 + 4 * r3]<br>>     movd     m0,     [r2]<br>>     movd     m1,     [r2 + r3]<br>>-    lea      r2,     [r2 + 2 * r3]<br>>-    movd     m2,     [r2]<br>>-    movd     m3,     [r2 + r3]<br>>-<br>>-    movd     [r0],                m0<br>>-    movd     [r0 + r1],           m1<br>>-    lea      r0,                  [r0 + 2 * r1]<br>>-    movd     [r0],                m2<br>>-    movd     [r0 + r1],           m3<br>>-<br>>-    lea       r0,                  [r0 + 2 * r1]<br>>-    lea       r2,                  [r2 + 2 * r3]<br>>+    movd     m2,     [r2 + 2 * r3]<br>>+    movd     m3,     [r2 + r6]<br>>+<br>>+    lea      r0,            [r0 + 4 * r1]<br>>+    movd     [r0],          m0<br>>+    movd     [r0 + r1],     m1<br>>+    movd     [r0 + 2 * r1], m2<br>>+    movd     [r0 + r5],     m3<br>>+<br>>+    lea       r0,                  [r0 + 4 * r1]<br>>+    lea       r2,                  [r2 + 4 * r3]<br>> <br>>     dec       r4d<br>>     jnz       .loop<br>>@@ -219,7 +218,6 @@<br>> %endmacro<br>> <br>> BLOCKCOPY_PP_W4_H8 4, 16<br>>-<br>> BLOCKCOPY_PP_W4_H8 4, 32<br>> <br>> ;-----------------------------------------------------------------------------<br>>_______________________________________________<br>>x265-devel mailing list<br>>x265-devel@videolan.org<br>>https://mailman.videolan.org/listinfo/x265-devel<br></div></div>