1bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/*
2bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
3bebc99d6fa433c04139294a5057f8439d772dbd9James Dong *
4bebc99d6fa433c04139294a5057f8439d772dbd9James Dong */
5bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
6bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    .eabi_attribute 24, 1
7bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    .eabi_attribute 25, 1
8bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
9bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    .arm
10bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    .fpu neon
11bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    .text
12bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
13bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    .global omxVCM4P10_InterpolateLuma
14bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    .func   omxVCM4P10_InterpolateLuma
15bebc99d6fa433c04139294a5057f8439d772dbd9James DongomxVCM4P10_InterpolateLuma:
16bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    PUSH     {r4-r12,lr}
17bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VPUSH    {d8-d15}
18bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      sp,sp,#0x10
19bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    LDR      r6,[sp,#0x78]
20bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    LDR      r7,[sp,#0x7c]
21bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    LDR      r5,[sp,#0x80]
22bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    LDR      r4,[sp,#0x84]
23bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r6,r6,r7,LSL #2
24bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
25bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VMOV.I16 d31,#0x14
26bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VMOV.I16 d30,#0x5
27bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x2c:
28bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    STM      r11,{r0-r3}
29bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      pc,pc,r6,LSL #2
30bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x3f0
31bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x78
32bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0xa8
33bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0xdc
34bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x100
35bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x134
36bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x168
37bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x1a8
38bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x1f0
39bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x234
40bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x258
41bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x2b0
42bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x2d8
43bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x330
44bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x364
45bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x3a8
46bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x3f0
47bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x78:
48bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r0,r1,LSL #1
49bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VLD1.8   {d9},[r0],r1
50bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VLD1.8   {d11},[r12],r1
51bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VLD1.8   {d10},[r0]
52bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VLD1.8   {d12},[r12]
53bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
54bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d9[0]},[r2],r3
55bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d11[0]},[r12],r3
56bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d10[0]},[r2]
57bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d12[0]},[r12]
58bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
59bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
60bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0xa8:
61bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
62bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
63bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d22,d22,d14
64bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d26,d26,d18
65bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d24,d24,d16
66bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d28,d28,d20
67bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
68bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d22[0]},[r2],r3
69bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d26[0]},[r12],r3
70bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d24[0]},[r2]
71bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d28[0]},[r12]
72bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
73bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
74bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0xdc:
75bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
76bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
77bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
78bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d22[0]},[r2],r3
79bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d26[0]},[r12],r3
80bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d24[0]},[r2]
81bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d28[0]},[r12]
82bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
83bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
84bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x100:
85bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
86bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
87bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d22,d22,d15
88bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d26,d26,d19
89bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d24,d24,d17
90bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d28,d28,d21
91bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
92bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d22[0]},[r2],r3
93bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d26[0]},[r12],r3
94bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d24[0]},[r2]
95bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d28[0]},[r12]
96bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
97bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
98bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x134:
99bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
100bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe
101bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d0,d0,d9
102bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d4,d4,d11
103bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d2,d2,d10
104bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d6,d6,d12
105bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
106bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d0[0]},[r2],r3
107bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d4[0]},[r12],r3
108bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d2[0]},[r2]
109bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d6[0]},[r12]
110bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
111bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
112bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x168:
113bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    MOV      r8,r0
114bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
115bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe
116bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r8,#2
117bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
118bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d22,d22,d0
119bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d26,d26,d4
120bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d24,d24,d2
121bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d28,d28,d6
122bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
123bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d22[0]},[r2],r3
124bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d26[0]},[r12],r3
125bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d24[0]},[r2]
126bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d28[0]},[r12]
127bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
128bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
129bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x1a8:
130bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
131bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
132bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe
133bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d14,q7,#5
134bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d16,q8,#5
135bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d18,q9,#5
136bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d20,q10,#5
137bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d0,d0,d14
138bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d4,d4,d18
139bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d2,d2,d16
140bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d6,d6,d20
141bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
142bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d0[0]},[r2],r3
143bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d4[0]},[r12],r3
144bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d2[0]},[r2]
145bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d6[0]},[r12]
146bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
147bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
148bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x1f0:
149bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    MOV      r8,r0
150bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r0,r0,#1
151bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
152bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe
153bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r8,#2
154bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
155bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d22,d22,d0
156bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d26,d26,d4
157bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d24,d24,d2
158bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d28,d28,d6
159bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
160bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d22[0]},[r2],r3
161bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d26[0]},[r12],r3
162bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d24[0]},[r2]
163bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d28[0]},[r12]
164bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
165bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
166bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x234:
167bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
168bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe
169bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
170bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d0[0]},[r2],r3
171bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d4[0]},[r12],r3
172bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d2[0]},[r2]
173bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d6[0]},[r12]
174bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
175bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
176bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x258:
177bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
178bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
179bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe
180bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VEXT.8   d18,d18,d19,#4
181bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VEXT.8   d20,d20,d21,#4
182bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VEXT.8   d22,d22,d23,#4
183bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VEXT.8   d24,d24,d25,#4
184bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d14,q9,#5
185bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d16,q10,#5
186bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d18,q11,#5
187bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d20,q12,#5
188bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d0,d0,d14
189bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d4,d4,d18
190bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d2,d2,d16
191bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d6,d6,d20
192bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
193bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d0[0]},[r2],r3
194bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d4[0]},[r12],r3
195bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d2[0]},[r2]
196bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d6[0]},[r12]
197bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
198bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
199bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x2b0:
200bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
201bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
202bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe
203bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
204bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d0[0]},[r2],r3
205bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d4[0]},[r12],r3
206bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d2[0]},[r2]
207bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d6[0]},[r12]
208bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
209bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
210bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x2d8:
211bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
212bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
213bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe
214bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VEXT.8   d18,d18,d19,#6
215bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VEXT.8   d20,d20,d21,#6
216bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VEXT.8   d22,d22,d23,#6
217bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VEXT.8   d24,d24,d25,#6
218bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d14,q9,#5
219bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d16,q10,#5
220bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d18,q11,#5
221bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d20,q12,#5
222bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d0,d0,d14
223bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d4,d4,d18
224bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d2,d2,d16
225bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d6,d6,d20
226bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
227bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d0[0]},[r2],r3
228bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d4[0]},[r12],r3
229bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d2[0]},[r2]
230bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d6[0]},[r12]
231bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
232bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
233bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x330:
234bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
235bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe
236bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d0,d0,d10
237bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d4,d4,d12
238bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d2,d2,d11
239bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d6,d6,d13
240bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
241bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d0[0]},[r2],r3
242bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d4[0]},[r12],r3
243bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d2[0]},[r2]
244bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d6[0]},[r12]
245bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
246bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
247bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x364:
248bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    MOV      r8,r0
249bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
250bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe
251bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r0,r8,r1
252bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
253bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
254bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d22,d22,d0
255bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d26,d26,d4
256bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d24,d24,d2
257bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d28,d28,d6
258bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
259bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d22[0]},[r2],r3
260bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d26[0]},[r12],r3
261bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d24[0]},[r2]
262bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d28[0]},[r12]
263bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
264bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
265bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x3a8:
266bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
267bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
268bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe
269bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d14,q8,#5
270bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d16,q9,#5
271bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d18,q10,#5
272bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VQRSHRUN.S16 d20,q11,#5
273bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d0,d0,d14
274bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d4,d4,d18
275bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d2,d2,d16
276bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d6,d6,d20
277bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
278bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d0[0]},[r2],r3
279bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d4[0]},[r12],r3
280bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d2[0]},[r2]
281bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d6[0]},[r12]
282bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
283bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    B        L0x434
284bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x3f0:
285bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    MOV      r8,r0
286bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r0,r0,#1
287bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r1,LSL #1
288bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe
289bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r0,r8,r1
290bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,#2
291bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BL       armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
292bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d22,d22,d0
293bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d26,d26,d4
294bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d24,d24,d2
295bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VRHADD.U8 d28,d28,d6
296bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r12,r2,r3,LSL #1
297bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d22[0]},[r2],r3
298bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d26[0]},[r12],r3
299bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d24[0]},[r2]
300bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VST1.32  {d28[0]},[r12]
301bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
302bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x434:
303bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    LDM      r11,{r0-r3}
304bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUBS     r5,r5,#4
305bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r0,r0,#4
306bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r2,r2,#4
307bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BGT      L0x2c
308bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUBS     r4,r4,#4
309bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    LDR      r5,[sp,#0x80]
310bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r11,sp,#0
311bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r0,r0,r1,LSL #2
312bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      r2,r2,r3,LSL #2
313bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r0,r0,r5
314bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    SUB      r2,r2,r5
315bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    BGT      L0x2c
316bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    MOV      r0,#0
317bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    ADD      sp,sp,#0x10
318bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    VPOP     {d8-d15}
319bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    POP      {r4-r12,pc}
320bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    .endfunc
321bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
322bebc99d6fa433c04139294a5057f8439d772dbd9James Dong    .end
323bebc99d6fa433c04139294a5057f8439d772dbd9James Dong
324