<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><DIV>right</DIV>
<DIV><BR>At 2014-02-05 17:33:21,yuvaraj@multicorewareinc.com wrote:<BR>># HG changeset patch<BR>># User Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com><BR>># Date 1391592757 -19800<BR>>#      Wed Feb 05 15:02:37 2014 +0530<BR>># Node ID b14a8528c478bf3068ed95aeef68c050014785cd<BR>># Parent  1374f1168c5cbb97a893172e37bd9f5c6ed5690c<BR>>asm: modified satd and sad asm functions in 16bpp to avoid overflow<BR>><BR>>diff -r 1374f1168c5c -r b14a8528c478 source/common/x86/pixel-a.asm<BR>>--- a/source/common/x86/pixel-a.asm        Wed Feb 05 12:59:57 2014 +0530<BR>>+++ b/source/common/x86/pixel-a.asm   Wed Feb 05 15:02:37 2014 +0530<BR>>@@ -511,7 +511,7 @@<BR>> %endif<BR>> %endmacro<BR>> <BR>>-%macro SATD_4x8_SSE 3<BR>>+%macro SATD_4x8_SSE 3-4<BR>> %if HIGH_BIT_DEPTH<BR>>     movh    m0, [r0+0*r1]<BR>>     movh    m4, [r2+0*r3]<BR>>@@ -577,7 +577,11 @@<BR>>     DIFFOP 2, 6, 3, 5, 7<BR>> %endif<BR>> %endif ; HIGH_BIT_DEPTH<BR>>+%if %0 == 4<BR>>+    SATD_8x4_1_SSE %1, 0, 1, 2, 3, 4, 5, 7, %3, %4<BR>>+%else<BR>>     SATD_8x4_SSE %1, 0, 1, 2, 3, 4, 5, 7, %3<BR>>+%endif<BR>> %endmacro<BR>> <BR>> ;-----------------------------------------------------------------------------<BR>>@@ -2391,56 +2395,66 @@<BR>>     SATD_START_MMX<BR>>     mov r6, r0<BR>>     mov r7, r2<BR>>+    pxor m7, m7<BR>> %if vertical==0<BR>>     mova m7, [hmul_4p]<BR>> %endif<BR>>-    SATD_4x8_SSE vertical, 0, swap<BR>>+    SATD_4x8_SSE vertical, 0, 4, 5<BR>>     lea r0, [r0 + r1*2*SIZEOF_PIXEL]<BR>>     lea r2, [r2 + r3*2*SIZEOF_PIXEL]<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>     lea r0, [r6 + 4*SIZEOF_PIXEL]<BR>>     lea r2, [r7 + 4*SIZEOF_PIXEL]<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>     lea r0, [r0 + r1*2*SIZEOF_PIXEL]<BR>>     lea r2, [r2 + r3*2*SIZEOF_PIXEL]<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>     lea r0, [r6 + 8*SIZEOF_PIXEL]<BR>>     lea r2, [r7 + 8*SIZEOF_PIXEL]<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>     lea r0, [r0 + r1*2*SIZEOF_PIXEL]<BR>>     lea r2, [r2 + r3*2*SIZEOF_PIXEL]<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>-    HADDW m7, m1<BR>>-    movd eax, m7<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>+    pxor    m1, m1<BR>>+    movhlps m1, m7<BR>>+    paddd   m7, m1<BR>>+    pshufd  m1, m7, 1<BR>>+    paddd   m7, m1<BR>>+    movd   eax, m7<BR>>     RET<BR>> %else<BR>> cglobal pixel_satd_12x16, 4,7,8,0-gprsize<BR>>     SATD_START_MMX<BR>>     mov r6, r0<BR>>     mov [rsp], r2<BR>>+    pxor m7, m7<BR>> %if vertical==0<BR>>     mova m7, [hmul_4p]<BR>> %endif<BR>>-    SATD_4x8_SSE vertical, 0, swap<BR>>+    SATD_4x8_SSE vertical, 0, 4, 5<BR>>     lea r0, [r0 + r1*2*SIZEOF_PIXEL]<BR>>     lea r2, [r2 + r3*2*SIZEOF_PIXEL]<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>     lea r0, [r6 + 4*SIZEOF_PIXEL]<BR>>     mov r2, [rsp]<BR>>     add r2, 4*SIZEOF_PIXEL<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>     lea r0, [r0 + r1*2*SIZEOF_PIXEL]<BR>>     lea r2, [r2 + r3*2*SIZEOF_PIXEL]<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>     lea r0, [r6 + 8*SIZEOF_PIXEL]<BR>>     mov r2, [rsp]<BR>>     add r2, 8*SIZEOF_PIXEL<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>     lea r0, [r0 + r1*2*SIZEOF_PIXEL]<BR>>     lea r2, [r2 + r3*2*SIZEOF_PIXEL]<BR>>-    SATD_4x8_SSE vertical, 1, add<BR>>-    HADDW m7, m1<BR>>-    movd eax, m7<BR>>+    SATD_4x8_SSE vertical, 1, 4, 5<BR>>+    pxor    m1, m1<BR>>+    movhlps m1, m7<BR>>+    paddd   m7, m1<BR>>+    pshufd  m1, m7, 1<BR>>+    paddd   m7, m1<BR>>+    movd   eax, m7<BR>>     RET<BR>> %endif<BR>> <BR>>diff -r 1374f1168c5c -r b14a8528c478 source/common/x86/sad16-a.asm<BR>>--- a/source/common/x86/sad16-a.asm       Wed Feb 05 12:59:57 2014 +0530<BR>>+++ b/source/common/x86/sad16-a.asm   Wed Feb 05 15:02:37 2014 +0530<BR>>@@ -274,9 +274,10 @@<BR>>     lea     r0, [r0+4*r1]<BR>>     lea     r2, [r2+4*r3]<BR>>     ABSW2   m3, m4, m3, m4, m7, m5<BR>>-    paddd   m1, m2<BR>>-    paddd   m3, m4<BR>>-    paddd   m0, m1<BR>>+    paddw   m1, m2<BR>>+    paddw   m3, m4<BR>>+    paddw   m3, m1<BR>>+    pmaddwd m3, [pw_1]<BR>>     paddd   m0, m3<BR>> %else<BR>>     movu    m1, [r2]<BR>>@@ -286,8 +287,9 @@<BR>>     ABSW2   m1, m2, m1, m2, m3, m4<BR>>     lea     r0, [r0+4*r1]<BR>>     lea     r2, [r2+4*r3]<BR>>-    paddw   m0, m1<BR>>-    paddw   m0, m2<BR>>+    paddw   m2, m1<BR>>+    pmaddwd m2, [pw_1]<BR>>+    paddd   m0, m2<BR>> %endif<BR>> %endmacro<BR>> <BR>>@@ -308,7 +310,7 @@<BR>>     jg .loop<BR>> %endif<BR>> <BR>>-    HADDW   m0, m1<BR>>+    HADDD   m0, m1<BR>>     movd    eax, xm0<BR>>     RET<BR>> %endmacro<BR>>_______________________________________________<BR>>x265-devel mailing list<BR>>x265-devel@videolan.org<BR>>https://mailman.videolan.org/listinfo/x265-devel<BR></DIV></div>