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_Copy4x4_unsafe
     29 armVCM4P10_InterpolateLuma_Copy4x4_unsafe:
     30     PUSH     {r4-r6,lr}
     31     AND      r12,r0,#3
     32     BIC      r0,r0,#3
     33     ADD      pc,pc,r12,LSL #2
     34     NOP
     35     B        Copy4x4Align0
     36     B        Copy4x4Align1
     37     B        Copy4x4Align2
     38     B        Copy4x4Align3
     39 Copy4x4Align0:
     40     LDR      r4,[r0],r1
     41     LDR      r5,[r0],r1
     42     STR      r4,[r2],r3
     43     LDR      r8,[r0],r1
     44     STR      r5,[r2],r3
     45     LDR      r9,[r0],r1
     46     STR      r8,[r2],r3
     47     STR      r9,[r2],r3
     48     B        Copy4x4End
     49 Copy4x4Align1:
     50     LDR      r5,[r0,#4]
     51     LDR      r4,[r0],r1
     52     LDR      r9,[r0,#4]
     53     LDR      r8,[r0],r1
     54     LSR      r4,r4,#8
     55     ORR      r4,r4,r5,LSL #24
     56     STR      r4,[r2],r3
     57     LSR      r8,r8,#8
     58     ORR      r8,r8,r9,LSL #24
     59     LDR      r5,[r0,#4]
     60     LDR      r4,[r0],r1
     61     STR      r8,[r2],r3
     62     LDR      r9,[r0,#4]
     63     LDR      r8,[r0],r1
     64     LSR      r4,r4,#8
     65     ORR      r4,r4,r5,LSL #24
     66     STR      r4,[r2],r3
     67     LSR      r8,r8,#8
     68     ORR      r8,r8,r9,LSL #24
     69     STR      r8,[r2],r3
     70     B        Copy4x4End
     71 Copy4x4Align2:
     72     LDR      r5,[r0,#4]
     73     LDR      r4,[r0],r1
     74     LDR      r9,[r0,#4]
     75     LDR      r8,[r0],r1
     76     LSR      r4,r4,#16
     77     ORR      r4,r4,r5,LSL #16
     78     STR      r4,[r2],r3
     79     LSR      r8,r8,#16
     80     ORR      r8,r8,r9,LSL #16
     81     STR      r8,[r2],r3
     82     LDR      r5,[r0,#4]
     83     LDR      r4,[r0],r1
     84     LDR      r9,[r0,#4]
     85     LDR      r8,[r0],r1
     86     LSR      r4,r4,#16
     87     ORR      r4,r4,r5,LSL #16
     88     STR      r4,[r2],r3
     89     LSR      r8,r8,#16
     90     ORR      r8,r8,r9,LSL #16
     91     STR      r8,[r2],r3
     92     B        Copy4x4End
     93 Copy4x4Align3:
     94     LDR      r5,[r0,#4]
     95     LDR      r4,[r0],r1
     96     LDR      r9,[r0,#4]
     97     LDR      r8,[r0],r1
     98     LSR      r4,r4,#24
     99     ORR      r4,r4,r5,LSL #8
    100     STR      r4,[r2],r3
    101     LSR      r8,r8,#24
    102     ORR      r8,r8,r9,LSL #8
    103     STR      r8,[r2],r3
    104     LDR      r5,[r0,#4]
    105     LDR      r4,[r0],r1
    106     LDR      r9,[r0,#4]
    107     LDR      r8,[r0],r1
    108     LSR      r4,r4,#24
    109     ORR      r4,r4,r5,LSL #8
    110     STR      r4,[r2],r3
    111     LSR      r8,r8,#24
    112     ORR      r8,r8,r9,LSL #8
    113     STR      r8,[r2],r3
    114 Copy4x4End:
    115     POP      {r4-r6,pc}
    116 
    117     .end
    118 
    119