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     .func   armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe
     30 armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe:
     31     PUSH     {r4-r12,lr}
     32     VLD1.8   {d0,d1},[r0],r1
     33     ADD      r12,r0,r1,LSL #2
     34     VMOV.I8  d30,#0x5
     35     VMOV.I8  d31,#0x14
     36     VLD1.8   {d10,d11},[r12],r1
     37     VLD1.8   {d2,d3},[r0],r1
     38     VLD1.8   {d12,d13},[r12],r1
     39     VADDL.U8 q9,d0,d10
     40     VLD1.8   {d4,d5},[r0],r1
     41     VADDL.U8 q0,d1,d11
     42     VLD1.8   {d6,d7},[r0],r1
     43     VADDL.U8 q10,d2,d12
     44     VLD1.8   {d8,d9},[r0],r1
     45     VMLAL.U8 q9,d4,d31
     46     VLD1.8   {d14,d15},[r12],r1
     47     VMLAL.U8 q0,d5,d31
     48     VLD1.8   {d16,d17},[r12],r1
     49     VMLAL.U8 q9,d6,d31
     50     VMLAL.U8 q10,d6,d31
     51     VMLSL.U8 q0,d3,d30
     52     VADDL.U8 q11,d4,d14
     53     VMLSL.U8 q9,d2,d30
     54     VADDL.U8 q1,d3,d13
     55     VMLAL.U8 q0,d7,d31
     56     VMLAL.U8 q10,d8,d31
     57     VMLSL.U8 q9,d8,d30
     58     VMLAL.U8 q1,d7,d31
     59     VMLSL.U8 q0,d9,d30
     60     VMLAL.U8 q11,d8,d31
     61     VMLSL.U8 q10,d4,d30
     62     VMLSL.U8 q1,d5,d30
     63     VADDL.U8 q2,d5,d15
     64     VMLAL.U8 q11,d10,d31
     65     VMLSL.U8 q10,d10,d30
     66     VMLAL.U8 q1,d9,d31
     67     VMLAL.U8 q2,d9,d31
     68     VADDL.U8 q12,d6,d16
     69     VMLSL.U8 q11,d6,d30
     70     VMLSL.U8 q1,d11,d30
     71     VMLSL.U8 q2,d7,d30
     72     VADDL.U8 q3,d7,d17
     73     VMLAL.U8 q12,d10,d31
     74     VMLSL.U8 q11,d12,d30
     75     VMLSL.U8 q2,d13,d30
     76     VMLAL.U8 q3,d11,d31
     77     VMLAL.U8 q12,d12,d31
     78     VEXT.8   d26,d18,d19,#2
     79     VMLAL.U8 q2,d11,d31
     80     VMLAL.U8 q3,d13,d31
     81     VMLSL.U8 q12,d8,d30
     82     VEXT.8   d27,d18,d19,#4
     83     VMOV.I16 d31,#0x14
     84     VMLSL.U8 q3,d9,d30
     85     VMLSL.U8 q12,d14,d30
     86     VEXT.8   d29,d19,d0,#2
     87     VEXT.8   d28,d18,d19,#6
     88     VMLSL.U8 q3,d15,d30
     89     VADDL.S16 q0,d18,d29
     90     VADD.I16 d27,d27,d28
     91     VMOV.I16 d30,#0x5
     92     VADD.I16 d26,d26,d19
     93     VMLAL.S16 q0,d27,d31
     94     VEXT.8   d27,d20,d21,#4
     95     VEXT.8   d28,d20,d21,#6
     96     VEXT.8   d29,d21,d2,#2
     97     VMLSL.S16 q0,d26,d30
     98     VEXT.8   d26,d20,d21,#2
     99     VADDL.S16 q1,d20,d29
    100     VADD.I16 d27,d27,d28
    101     VADD.I16 d26,d26,d21
    102     VEXT.8   d28,d22,d23,#6
    103     VMLAL.S16 q1,d27,d31
    104     VEXT.8   d29,d23,d4,#2
    105     VEXT.8   d27,d22,d23,#4
    106     VEXT.8   d8,d22,d23,#2
    107     VADDL.S16 q2,d22,d29
    108     VMLSL.S16 q1,d26,d30
    109     VADD.I16 d27,d27,d28
    110     VADD.I16 d26,d8,d23
    111     VEXT.8   d28,d24,d25,#6
    112     VMLAL.S16 q2,d27,d31
    113     VEXT.8   d27,d24,d25,#4
    114     VEXT.8   d29,d25,d6,#2
    115     VADD.I16 d27,d27,d28
    116     VEXT.8   d8,d24,d25,#2
    117     VADDL.S16 q3,d24,d29
    118     VMLSL.S16 q2,d26,d30
    119     VMLAL.S16 q3,d27,d31
    120     VADD.I16 d8,d8,d25
    121     VMLSL.S16 q3,d8,d30
    122     VQRSHRUN.S32 d0,q0,#10
    123     VQRSHRUN.S32 d2,q1,#10
    124     VQRSHRUN.S32 d4,q2,#10
    125     VQRSHRUN.S32 d6,q3,#10
    126     VQMOVN.U16 d0,q0
    127     VQMOVN.U16 d2,q1
    128     VQMOVN.U16 d4,q2
    129     VQMOVN.U16 d6,q3
    130     POP      {r4-r12,pc}
    131     .endfunc
    132 
    133     .end
    134 
    135