Home | History | Annotate | Download | only in src_gcc
      1 /*
      2  * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
      3  *
      4  */
      5 
      6     .eabi_attribute 24, 1
      7     .eabi_attribute 25, 1
      8 
      9     .arm
     10     .fpu neon
     11     .text
     12 
     13     .global armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe
     14     .func   armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe
     15 armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe:
     16     PUSH     {r4-r12,lr}
     17     VLD1.8   {d0,d1},[r0],r1
     18     VMOV.I16 d31,#0x14
     19     VMOV.I16 d30,#0x5
     20     VEXT.8   d4,d0,d1,#1
     21     VEXT.8   d2,d0,d1,#2
     22     VEXT.8   d3,d0,d1,#3
     23     VEXT.8   d5,d0,d1,#4
     24     VEXT.8   d1,d0,d1,#5
     25     VADDL.U8 q1,d2,d3
     26     VADDL.U8 q2,d4,d5
     27     VADDL.U8 q5,d0,d1
     28     VLD1.8   {d0,d1},[r0],r1
     29     VMLA.I16 d10,d2,d31
     30     VMUL.I16 d8,d4,d30
     31     VEXT.8   d4,d0,d1,#1
     32     VEXT.8   d2,d0,d1,#2
     33     VEXT.8   d3,d0,d1,#3
     34     VEXT.8   d5,d0,d1,#4
     35     VEXT.8   d1,d0,d1,#5
     36     VADDL.U8 q1,d2,d3
     37     VADDL.U8 q2,d4,d5
     38     VADDL.U8 q6,d0,d1
     39     VLD1.8   {d0,d1},[r0],r1
     40     VSUB.I16 d10,d10,d8
     41     VMLA.I16 d12,d2,d31
     42     VMUL.I16 d8,d4,d30
     43     VEXT.8   d4,d0,d1,#1
     44     VEXT.8   d2,d0,d1,#2
     45     VEXT.8   d3,d0,d1,#3
     46     VEXT.8   d5,d0,d1,#4
     47     VEXT.8   d1,d0,d1,#5
     48     VADDL.U8 q1,d2,d3
     49     VADDL.U8 q2,d4,d5
     50     VADDL.U8 q7,d0,d1
     51     VLD1.8   {d0,d1},[r0],r1
     52     VSUB.I16 d12,d12,d8
     53     VMLA.I16 d14,d2,d31
     54     VMUL.I16 d8,d4,d30
     55     VEXT.8   d4,d0,d1,#1
     56     VEXT.8   d2,d0,d1,#2
     57     VEXT.8   d3,d0,d1,#3
     58     VEXT.8   d5,d0,d1,#4
     59     VEXT.8   d1,d0,d1,#5
     60     VADDL.U8 q1,d2,d3
     61     VADDL.U8 q2,d4,d5
     62     VADDL.U8 q8,d0,d1
     63     VLD1.8   {d0,d1},[r0],r1
     64     VSUB.I16 d14,d14,d8
     65     VMLA.I16 d16,d2,d31
     66     VMUL.I16 d8,d4,d30
     67     VEXT.8   d4,d0,d1,#1
     68     VEXT.8   d2,d0,d1,#2
     69     VEXT.8   d3,d0,d1,#3
     70     VEXT.8   d5,d0,d1,#4
     71     VEXT.8   d1,d0,d1,#5
     72     VADDL.U8 q1,d2,d3
     73     VADDL.U8 q2,d4,d5
     74     VADDL.U8 q9,d0,d1
     75     VLD1.8   {d0,d1},[r0],r1
     76     VSUB.I16 d16,d16,d8
     77     VMLA.I16 d18,d2,d31
     78     VMUL.I16 d8,d4,d30
     79     VEXT.8   d4,d0,d1,#1
     80     VEXT.8   d2,d0,d1,#2
     81     VEXT.8   d3,d0,d1,#3
     82     VEXT.8   d5,d0,d1,#4
     83     VEXT.8   d1,d0,d1,#5
     84     VADDL.U8 q1,d2,d3
     85     VADDL.U8 q2,d4,d5
     86     VADDL.U8 q10,d0,d1
     87     VLD1.8   {d0,d1},[r0],r1
     88     VSUB.I16 d18,d18,d8
     89     VMLA.I16 d20,d2,d31
     90     VMUL.I16 d8,d4,d30
     91     VEXT.8   d4,d0,d1,#1
     92     VEXT.8   d2,d0,d1,#2
     93     VEXT.8   d3,d0,d1,#3
     94     VEXT.8   d5,d0,d1,#4
     95     VEXT.8   d1,d0,d1,#5
     96     VADDL.U8 q1,d2,d3
     97     VADDL.U8 q2,d4,d5
     98     VADDL.U8 q11,d0,d1
     99     VLD1.8   {d0,d1},[r0],r1
    100     VSUB.I16 d20,d20,d8
    101     VMLA.I16 d22,d2,d31
    102     VMUL.I16 d8,d4,d30
    103     VEXT.8   d4,d0,d1,#1
    104     VEXT.8   d2,d0,d1,#2
    105     VEXT.8   d3,d0,d1,#3
    106     VEXT.8   d5,d0,d1,#4
    107     VEXT.8   d1,d0,d1,#5
    108     VADDL.U8 q1,d2,d3
    109     VADDL.U8 q2,d4,d5
    110     VADDL.U8 q12,d0,d1
    111     VLD1.8   {d0,d1},[r0],r1
    112     VSUB.I16 d22,d22,d8
    113     VMLA.I16 d24,d2,d31
    114     VMUL.I16 d8,d4,d30
    115     VEXT.8   d4,d0,d1,#1
    116     VEXT.8   d2,d0,d1,#2
    117     VEXT.8   d3,d0,d1,#3
    118     VEXT.8   d5,d0,d1,#4
    119     VEXT.8   d1,d0,d1,#5
    120     VADDL.U8 q1,d2,d3
    121     VADDL.U8 q2,d4,d5
    122     VADDL.U8 q13,d0,d1
    123     VSUB.I16 d24,d24,d8
    124     VMLA.I16 d26,d2,d31
    125     VMUL.I16 d8,d4,d30
    126     VMOV.I32 q15,#0x14
    127     VMOV.I32 q14,#0x5
    128     VADDL.S16 q5,d10,d20
    129     VADDL.S16 q1,d14,d16
    130     VADDL.S16 q0,d12,d18
    131     VSUB.I16 d26,d26,d8
    132     VMLA.I32 q5,q1,q15
    133     VMUL.I32 q4,q0,q14
    134     VADDL.S16 q6,d12,d22
    135     VADDL.S16 q1,d16,d18
    136     VADDL.S16 q0,d14,d20
    137     VMLA.I32 q6,q1,q15
    138     VSUB.I32 q5,q5,q4
    139     VMUL.I32 q4,q0,q14
    140     VADDL.S16 q2,d14,d24
    141     VADDL.S16 q1,d18,d20
    142     VADDL.S16 q0,d16,d22
    143     VMLA.I32 q2,q1,q15
    144     VSUB.I32 q6,q6,q4
    145     VMUL.I32 q4,q0,q14
    146     VADDL.S16 q3,d16,d26
    147     VADDL.S16 q1,d20,d22
    148     VADDL.S16 q0,d18,d24
    149     VMLA.I32 q3,q1,q15
    150     VSUB.I32 q2,q2,q4
    151     VMLS.I32 q3,q0,q14
    152     VQRSHRUN.S32 d0,q5,#10
    153     VQRSHRUN.S32 d2,q6,#10
    154     VQRSHRUN.S32 d4,q2,#10
    155     VQRSHRUN.S32 d6,q3,#10
    156     VQMOVN.U16 d0,q0
    157     VQMOVN.U16 d2,q1
    158     VQMOVN.U16 d4,q2
    159     VQMOVN.U16 d6,q3
    160     POP      {r4-r12,pc}
    161     .endfunc
    162 
    163     .end
    164 
    165