Home | History | Annotate | Download | only in src_gcc
      1 /*
      2  * Copyright (C) 2007-2008 ARM Limited
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  *
     16  */
     17 /*
     18  *
     19  */
     20 
     21     .eabi_attribute 24, 1
     22     .eabi_attribute 25, 1
     23 
     24     .arm
     25     .fpu neon
     26     .text
     27 
     28     .global armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe
     29 armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe:
     30     PUSH     {r4-r12,lr}
     31     VLD1.8   {d0,d1},[r0],r1
     32     ADD      r12,r0,r1,LSL #2
     33     VMOV.I8  d30,#0x5
     34     VMOV.I8  d31,#0x14
     35     VLD1.8   {d10,d11},[r12],r1
     36     VLD1.8   {d2,d3},[r0],r1
     37     VLD1.8   {d12,d13},[r12],r1
     38     VADDL.U8 q9,d0,d10
     39     VLD1.8   {d4,d5},[r0],r1
     40     VADDL.U8 q0,d1,d11
     41     VLD1.8   {d6,d7},[r0],r1
     42     VADDL.U8 q10,d2,d12
     43     VLD1.8   {d8,d9},[r0],r1
     44     VMLAL.U8 q9,d4,d31
     45     VLD1.8   {d14,d15},[r12],r1
     46     VMLAL.U8 q0,d5,d31
     47     VLD1.8   {d16,d17},[r12],r1
     48     VMLAL.U8 q9,d6,d31
     49     VMLAL.U8 q10,d6,d31
     50     VMLSL.U8 q0,d3,d30
     51     VADDL.U8 q11,d4,d14
     52     VMLSL.U8 q9,d2,d30
     53     VADDL.U8 q1,d3,d13
     54     VMLAL.U8 q0,d7,d31
     55     VMLAL.U8 q10,d8,d31
     56     VMLSL.U8 q9,d8,d30
     57     VMLAL.U8 q1,d7,d31
     58     VMLSL.U8 q0,d9,d30
     59     VMLAL.U8 q11,d8,d31
     60     VMLSL.U8 q10,d4,d30
     61     VMLSL.U8 q1,d5,d30
     62     VADDL.U8 q2,d5,d15
     63     VMLAL.U8 q11,d10,d31
     64     VMLSL.U8 q10,d10,d30
     65     VMLAL.U8 q1,d9,d31
     66     VMLAL.U8 q2,d9,d31
     67     VADDL.U8 q12,d6,d16
     68     VMLSL.U8 q11,d6,d30
     69     VMLSL.U8 q1,d11,d30
     70     VMLSL.U8 q2,d7,d30
     71     VADDL.U8 q3,d7,d17
     72     VMLAL.U8 q12,d10,d31
     73     VMLSL.U8 q11,d12,d30
     74     VMLSL.U8 q2,d13,d30
     75     VMLAL.U8 q3,d11,d31
     76     VMLAL.U8 q12,d12,d31
     77     VEXT.8   d26,d18,d19,#2
     78     VMLAL.U8 q2,d11,d31
     79     VMLAL.U8 q3,d13,d31
     80     VMLSL.U8 q12,d8,d30
     81     VEXT.8   d27,d18,d19,#4
     82     VMOV.I16 d31,#0x14
     83     VMLSL.U8 q3,d9,d30
     84     VMLSL.U8 q12,d14,d30
     85     VEXT.8   d29,d19,d0,#2
     86     VEXT.8   d28,d18,d19,#6
     87     VMLSL.U8 q3,d15,d30
     88     VADDL.S16 q0,d18,d29
     89     VADD.I16 d27,d27,d28
     90     VMOV.I16 d30,#0x5
     91     VADD.I16 d26,d26,d19
     92     VMLAL.S16 q0,d27,d31
     93     VEXT.8   d27,d20,d21,#4
     94     VEXT.8   d28,d20,d21,#6
     95     VEXT.8   d29,d21,d2,#2
     96     VMLSL.S16 q0,d26,d30
     97     VEXT.8   d26,d20,d21,#2
     98     VADDL.S16 q1,d20,d29
     99     VADD.I16 d27,d27,d28
    100     VADD.I16 d26,d26,d21
    101     VEXT.8   d28,d22,d23,#6
    102     VMLAL.S16 q1,d27,d31
    103     VEXT.8   d29,d23,d4,#2
    104     VEXT.8   d27,d22,d23,#4
    105     VEXT.8   d8,d22,d23,#2
    106     VADDL.S16 q2,d22,d29
    107     VMLSL.S16 q1,d26,d30
    108     VADD.I16 d27,d27,d28
    109     VADD.I16 d26,d8,d23
    110     VEXT.8   d28,d24,d25,#6
    111     VMLAL.S16 q2,d27,d31
    112     VEXT.8   d27,d24,d25,#4
    113     VEXT.8   d29,d25,d6,#2
    114     VADD.I16 d27,d27,d28
    115     VEXT.8   d8,d24,d25,#2
    116     VADDL.S16 q3,d24,d29
    117     VMLSL.S16 q2,d26,d30
    118     VMLAL.S16 q3,d27,d31
    119     VADD.I16 d8,d8,d25
    120     VMLSL.S16 q3,d8,d30
    121     VQRSHRUN.S32 d0,q0,#10
    122     VQRSHRUN.S32 d2,q1,#10
    123     VQRSHRUN.S32 d4,q2,#10
    124     VQRSHRUN.S32 d6,q3,#10
    125     VQMOVN.U16 d0,q0
    126     VQMOVN.U16 d2,q1
    127     VQMOVN.U16 d4,q2
    128     VQMOVN.U16 d6,q3
    129     POP      {r4-r12,pc}
    130 
    131     .end
    132 
    133