[x265] [PATCH 4 of 4] asm-intrapred8.asm: introduce macro 'INTRA_PRED_ANG16_MC5' to reduce code size

praveen at multicorewareinc.com praveen at multicorewareinc.com
Wed Mar 18 05:48:32 CET 2015


# HG changeset patch
# User Praveen Tiwari <praveen at multicorewareinc.com>
# Date 1426597098 -19800
# Node ID bfe5133b37d358b898bcc77899e5ae6fd8b7bab1
# Parent  eeee135bfe2d81e275304ffed46885955015c6bf
asm-intrapred8.asm: introduce macro 'INTRA_PRED_ANG16_MC5' to reduce code size

diff -r eeee135bfe2d -r bfe5133b37d3 source/common/x86/intrapred8.asm
--- a/source/common/x86/intrapred8.asm	Tue Mar 17 18:05:33 2015 +0530
+++ b/source/common/x86/intrapred8.asm	Tue Mar 17 18:28:18 2015 +0530
@@ -11206,6 +11206,15 @@
     INTRA_PRED_ANG16_MC1 2
     RET
 
+%macro INTRA_PRED_ANG16_MC5 2
+    pslldq            xm6,  xm6, 1
+    pinsrb            xm6, [r2 + %1], 0
+    vinserti128       m1, m6, xm6, 1
+    pshufb            m1, m5
+    vbroadcasti128    m2, [r2 + %2]
+    pshufb            m2, m5
+%endmacro
+
 INIT_YMM avx2
 cglobal intra_pred_ang16_23, 3, 5, 7
     mova              m0, [pw_1024]
@@ -11231,34 +11240,22 @@
 
     add               r4, 4 * mmsize
 
-    pslldq            xm6,  xm6, 1
-    pinsrb            xm6, [r2 + 39], 0
-    vinserti128       m1, m6, xm6, 1
-    pshufb            m1, m5
-    vbroadcasti128    m2, [r2 + 6]
-    pshufb            m2, m5
+    INTRA_PRED_ANG16_MC5 39, 6
     INTRA_PRED_ANG16_MC0 r0 + r3, r0 + 4 * r1, 0
 
     lea                  r0, [r0 + 4 * r1]
+
     INTRA_PRED_ANG16_MC3 r0 + r1, 1
-
-    pslldq            xm6, xm6, 1
-    pinsrb            xm6, [r2 + 43], 0
-    vinserti128       m1, m6, xm6, 1
-    pshufb            m1, m5
-    vbroadcasti128    m2, [r2 + 5]
-    pshufb            m2, m5
+    INTRA_PRED_ANG16_MC5 43, 5
     INTRA_PRED_ANG16_MC0 r0 + 2 * r1, r0 + r3, 2
+
     lea                  r0, [r0 + 4 * r1]
+
     INTRA_PRED_ANG16_MC0 r0, r0 + r1, 3
 
     add               r4, 4 * mmsize
-    pslldq            xm6,  xm6, 1
-    pinsrb            xm6, [r2 + 46], 0
-    vinserti128       m1, m6, xm6, 1
-    pshufb            m1, m5
-    vbroadcasti128    m2, [r2 + 4]
-    pshufb            m2, m5
+
+    INTRA_PRED_ANG16_MC5 46, 4
     INTRA_PRED_ANG16_MC0 r0 + 2 * r1, r0 + r3, 0
     RET
 
@@ -11282,51 +11279,25 @@
 
     lea               r0, [r0 + 4 * r1]
 
-    pslldq            xm6, xm6, 1
-    pinsrb            xm6, [r2 + 37], 0
-    vinserti128       m1, m6, xm6, 1
-    pshufb            m1, m5
-    vbroadcasti128    m2, [r2 + 6]
-    pshufb            m2, m5
+    INTRA_PRED_ANG16_MC5 37, 6
     INTRA_PRED_ANG16_MC0 r0, r0 + r1, 2
     INTRA_PRED_ANG16_MC3 r0 + 2 * r1, 3
 
     add               r4, 4 * mmsize
 
-    pslldq            xm6, xm6, 1
-    pinsrb            xm6, [r2 + 39], 0
-    vinserti128       m1, m6, xm6, 1
-    pshufb            m1, m5
-    vbroadcasti128    m2, [r2 + 5]
-    pshufb            m2, m5
+    INTRA_PRED_ANG16_MC5 39, 5
     INTRA_PRED_ANG16_MC0 r0 + r3, r0 + 4 * r1, 0
 
     lea               r0, [r0 + 4 * r1]
 
-    pslldq            xm6, xm6, 1
-    pinsrb            xm6, [r2 + 42], 0
-    vinserti128       m1, m6, xm6, 1
-    pshufb            m1, m5
-    vbroadcasti128    m2, [r2 + 4]
-    pshufb            m2, m5
+    INTRA_PRED_ANG16_MC5 42, 4
     INTRA_PRED_ANG16_MC0 r0 + r1, r0 + 2 * r1, 1
     INTRA_PRED_ANG16_MC3 r0 + r3, 2
 
     lea               r0, [r0 + 4 * r1]
 
-    pslldq            xm6, xm6, 1
-    pinsrb            xm6, [r2 + 44], 0
-    vinserti128       m1, m6, xm6, 1
-    pshufb            m1, m5
-    vbroadcasti128    m2, [r2 + 3]
-    pshufb            m2, m5
+    INTRA_PRED_ANG16_MC5 44, 3
     INTRA_PRED_ANG16_MC0 r0, r0 + r1, 3
-
-    pslldq            xm6, xm6, 1
-    pinsrb            xm6, [r2 + 47], 0
-    vinserti128       m1, m6, xm6, 1
-    pshufb            m1, m5
-    vbroadcasti128    m2, [r2 + 2]
-    pshufb            m2, m5
+    INTRA_PRED_ANG16_MC5 47, 2
     INTRA_PRED_ANG16_MC0 r0 + 2 * r1, r0 + r3, 4
     RET


More information about the x265-devel mailing list