[x265] [PATCH] asm: 16bpp support for sa8d_64xN

yuvaraj at multicorewareinc.com yuvaraj at multicorewareinc.com
Wed Dec 4 13:05:38 CET 2013


# HG changeset patch
# User Yuvaraj Venkatesh <yuvaraj at multicorewareinc.com>
# Date 1386158720 -19800
#      Wed Dec 04 17:35:20 2013 +0530
# Node ID a31d4ba43de3f1c89bc6af7f1748982c58855ca8
# Parent  4ce258ca871d23f73fa1aff580a22c2c36dcc27b
asm: 16bpp support for sa8d_64xN

diff -r 4ce258ca871d -r a31d4ba43de3 source/common/x86/asm-primitives.cpp
--- a/source/common/x86/asm-primitives.cpp	Wed Dec 04 17:20:11 2013 +0530
+++ b/source/common/x86/asm-primitives.cpp	Wed Dec 04 17:35:20 2013 +0530
@@ -505,24 +505,7 @@
         p.satd[LUMA_32x24] = x265_pixel_satd_32x24_sse2;
 
         p.sa8d_inter[LUMA_4x4]  = x265_pixel_satd_4x4_mmx2;
-        p.sa8d_inter[LUMA_4x8]  = x265_pixel_satd_4x8_sse2;
-        p.sa8d_inter[LUMA_4x16]  = x265_pixel_satd_4x16_sse2;
-        p.sa8d_inter[LUMA_8x4]  = x265_pixel_satd_8x4_sse2;
-        p.sa8d_inter[LUMA_8x16] = x265_pixel_sa8d_8x16_sse2;
-        p.sa8d_inter[LUMA_8x32] = x265_pixel_sa8d_8x32_sse2;
-        p.sa8d_inter[LUMA_12x16]  = x265_pixel_satd_12x16_sse2;
-        p.sa8d_inter[LUMA_16x4]  = x265_pixel_satd_16x4_sse2;
-        p.sa8d_inter[LUMA_16x8]  = x265_pixel_sa8d_16x8_sse2;
-        p.sa8d_inter[LUMA_16x12]  = x265_pixel_satd_16x12_sse2;
-        p.sa8d_inter[LUMA_16x32]  = x265_pixel_sa8d_16x32_sse2;
-        p.sa8d_inter[LUMA_16x64]  = x265_pixel_sa8d_16x64_sse2;
-        p.sa8d_inter[LUMA_24x32]  = x265_pixel_sa8d_24x32_sse2;
-        p.sa8d_inter[LUMA_48x64]  = x265_pixel_sa8d_48x64_sse2;
-        p.sa8d_inter[LUMA_32x8]  = x265_pixel_sa8d_32x8_sse2;
-        p.sa8d_inter[LUMA_32x16]  = x265_pixel_sa8d_32x16_sse2;
-        p.sa8d_inter[LUMA_32x24]  = x265_pixel_sa8d_32x24_sse2;
-        p.sa8d_inter[LUMA_32x32]  = x265_pixel_sa8d_32x32_sse2;
-        p.sa8d_inter[LUMA_32x64]  = x265_pixel_sa8d_32x64_sse2;
+        SA8D_INTER_FROM_BLOCK(sse2);
         p.sa8d_inter[LUMA_8x8] = x265_pixel_sa8d_8x8_sse2;
         p.sa8d_inter[LUMA_16x16] = x265_pixel_sa8d_16x16_sse2;
 
diff -r 4ce258ca871d -r a31d4ba43de3 source/common/x86/pixel-a.asm
--- a/source/common/x86/pixel-a.asm	Wed Dec 04 17:20:11 2013 +0530
+++ b/source/common/x86/pixel-a.asm	Wed Dec 04 17:35:20 2013 +0530
@@ -3002,8 +3002,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3011,8 +3011,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3020,8 +3020,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3041,8 +3041,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3050,8 +3050,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3059,8 +3059,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3071,8 +3071,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3080,8 +3080,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3089,8 +3089,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3110,8 +3110,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3119,8 +3119,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3128,8 +3128,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3140,8 +3140,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3149,8 +3149,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3158,8 +3158,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3170,8 +3170,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3179,8 +3179,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3188,8 +3188,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3209,8 +3209,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3218,8 +3218,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3227,8 +3227,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3239,8 +3239,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3248,8 +3248,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3257,8 +3257,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3269,8 +3269,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3278,8 +3278,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3287,8 +3287,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    add  r2, 16
-    add  r0, 16
+    add  r2, 16*SIZEOF_PIXEL
+    add  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3299,8 +3299,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3308,8 +3308,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -3317,8 +3317,8 @@
     lea  r5, [8*r3]
     sub  r2, r4
     sub  r0, r5
-    sub  r2, 16
-    sub  r0, 16
+    sub  r2, 16*SIZEOF_PIXEL
+    sub  r0, 16*SIZEOF_PIXEL
     lea  r4, [3*r1]
     lea  r5, [3*r3]
     SA8D_16x16
@@ -4942,6 +4942,9 @@
     lea  r4, [r1 + 2*r1]
     lea  r5, [r3 + 2*r3]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [rsp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -4955,8 +4958,10 @@
     SA8D_INTER
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
-    paddusw m0, [esp+48]
+    SA8D_INTER
+%if HIGH_BIT_DEPTH == 0
     HADDUW m0, m1
+%endif
     movd r4d, m0
     add  r4d, 1
     shr  r4d, 1
@@ -4968,6 +4973,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -4989,6 +4997,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5010,6 +5021,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5023,8 +5037,10 @@
     SA8D_INTER
     mova [esp+64-mmsize], m0
     call pixel_sa8d_8x8_internal2
-    paddusw m0, [esp+48]
+    SA8D_INTER
+%if HIGH_BIT_DEPTH == 0
     HADDUW m0, m1
+%endif
     movd r4d, m0
     add  r4d, 1
     shr  r4d, 1
@@ -5042,6 +5058,9 @@
     lea  r4, [r1 + 2*r1]
     lea  r5, [r3 + 2*r3]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [rsp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5055,8 +5074,10 @@
     SA8D_INTER
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
-    paddusw m0, [esp+48]
+    SA8D_INTER
+%if HIGH_BIT_DEPTH == 0
     HADDUW m0, m1
+%endif
     movd r4d, m0
     add  r4d, 1
     shr  r4d, 1
@@ -5068,6 +5089,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5089,6 +5113,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5110,6 +5137,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5136,6 +5166,9 @@
 
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5157,6 +5190,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5178,6 +5214,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5199,6 +5238,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5212,8 +5254,10 @@
     SA8D_INTER
     mova [esp+64-mmsize], m0
     call pixel_sa8d_8x8_internal2
-    paddusw m0, [esp+48]
+    SA8D_INTER
+%if HIGH_BIT_DEPTH == 0
     HADDUW m0, m1
+%endif
     movd r4d, m0
     add  r4d, 1
     shr  r4d, 1
@@ -5231,6 +5275,9 @@
     lea  r4, [r1 + 2*r1]
     lea  r5, [r3 + 2*r3]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [rsp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5244,8 +5291,10 @@
     SA8D_INTER
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
-    paddusw m0, [esp+48]
+    SA8D_INTER
+%if HIGH_BIT_DEPTH == 0
     HADDUW m0, m1
+%endif
     movd r4d, m0
     add  r4d, 1
     shr  r4d, 1
@@ -5257,6 +5306,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5278,6 +5330,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5299,6 +5354,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5325,6 +5383,9 @@
 
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5346,6 +5407,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5367,6 +5431,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5388,6 +5455,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5414,6 +5484,9 @@
 
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5435,6 +5508,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5456,6 +5532,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5477,6 +5556,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5490,8 +5572,10 @@
     SA8D_INTER
     mova [esp+64-mmsize], m0
     call pixel_sa8d_8x8_internal2
-    paddusw m0, [esp+48]
+    SA8D_INTER
+%if HIGH_BIT_DEPTH == 0
     HADDUW m0, m1
+%endif
     movd r4d, m0
     add  r4d, 1
     shr  r4d, 1
@@ -5509,6 +5593,9 @@
     lea  r4, [r1 + 2*r1]
     lea  r5, [r3 + 2*r3]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [rsp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5522,8 +5609,10 @@
     SA8D_INTER
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
-    paddusw m0, [esp+48]
+    SA8D_INTER
+%if HIGH_BIT_DEPTH == 0
     HADDUW m0, m1
+%endif
     movd r4d, m0
     add  r4d, 1
     shr  r4d, 1
@@ -5535,6 +5624,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5556,6 +5648,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5577,6 +5672,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5603,6 +5701,9 @@
 
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5624,6 +5725,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5645,6 +5749,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5666,6 +5773,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5692,6 +5802,9 @@
 
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5713,6 +5826,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5734,6 +5850,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5755,6 +5874,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5781,6 +5903,9 @@
 
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5802,6 +5927,9 @@
     add  r2, 16*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5823,6 +5951,9 @@
     add  r2, 32*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5844,6 +5975,9 @@
     add  r2, 48*SIZEOF_PIXEL
     lea  r4, [r1 + 2*r1]
     call pixel_sa8d_8x8_internal2
+%if HIGH_BIT_DEPTH
+    HADDUW m0, m1
+%endif
     mova [esp+48], m0
     call pixel_sa8d_8x8_internal2
     SA8D_INTER
@@ -5857,8 +5991,10 @@
     SA8D_INTER
     mova [esp+64-mmsize], m0
     call pixel_sa8d_8x8_internal2
-    paddusw m0, [esp+48]
+    SA8D_INTER
+%if HIGH_BIT_DEPTH == 0
     HADDUW m0, m1
+%endif
     movd r4d, m0
     add  r4d, 1
     shr  r4d, 1


More information about the x265-devel mailing list