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