1d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ ------------------------------------------------------------------
2d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ Copyright (C) 1998-2009 PacketVideo
3d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@
4d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ Licensed under the Apache License, Version 2.0 (the "License");
5d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ you may not use this file except in compliance with the License.
6d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ You may obtain a copy of the License at
7d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@
8d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@      http://www.apache.org/licenses/LICENSE-2.0
9d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@
10d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ Unless required by applicable law or agreed to in writing, software
11d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ distributed under the License is distributed on an "AS IS" BASIS,
12d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ express or implied.
14d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ See the License for the specific language governing permissions
15d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ and limitations under the License.
16d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ -------------------------------------------------------------------
17d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
18d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@
19d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@
20d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@   Filename: pvmp3_polyphase_filter_window.s
21d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@
22d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@------------------------------------------------------------------------------
23d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ REVISION HISTORY
24d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@
25d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@
26d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ Who:                                   Date: MM/DD/YYYY
27d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ Description:
28d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@
29d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@------------------------------------------------------------------------------
30d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
31d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber.arm
32d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
33d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber.align 4
34d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
35d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber.text
36d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
37d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber.extern pqmfSynthWin
3897e3e847179c17eb9059fb322413b6facd3e5a03Ard Biesheuvel.hidden pqmfSynthWin
39d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
40d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
41d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
42d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@------------------------------------------------------------------------------
43d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
44d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber.global pvmp3_polyphase_filter_window
45d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
46d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huberpvmp3_polyphase_filter_window:
47d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        stmfd    sp!,{r0-r2,r4-r11,lr}
48d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
49d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      sp,sp,#4
509a2c14b2c96625d5be73e1a7627f5d2a3091c4a2Ard Biesheuvel        adr      r2,PolyPh_filter_coeff
519a2c14b2c96625d5be73e1a7627f5d2a3091c4a2Ard Biesheuvel        ldr      r1,[r2]
529a2c14b2c96625d5be73e1a7627f5d2a3091c4a2Ard Biesheuvel        add      r1,r2
53d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[sp,#0xc]
54d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
55d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r2,r2,#1
56d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r10,#1
57d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r2,[sp]
58d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
59d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ Accumulators r9, r11::> Initialization
60d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
61d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberLoop_j:
62d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r9,  #0x20
63d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r11, #0x20
64d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r4,  #0x10
65d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberLoop_i:
66d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r2,r4,r10
67d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r3,r0,r2,lsl #2
68d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r2,r4,r10
69d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r3]
70d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r1]
71d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r12,r0,r2,lsl #2
72d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r12,#0x780]
73d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r2,r9,lr,r5
74d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r2,r11,lr,r6
75d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#4]
76d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r12,#0x80]
77d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r11,r2,r5
78d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r5,r2,r6
79d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r9,r9,r5
80d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r1,#8]
81d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r3,#0x700]
82d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r4,r4,#0x200
83d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r6,r9,r5,r7
84d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r2,r5,r8
85d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r1,#0xc]
86d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r11,r11,r2
87d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r8,r9,r5,r8
88d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r11,r5,r7
89d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r3,#0x100]
90d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x10]
91d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r12,#0x680]
92d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    lr,r9,r2,r5
93d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    lr,r11,r2,r6
94d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x14]
95d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r12,#0x180]
96d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r11,r2,r5
97d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r5,r2,r6
98d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x18]
99d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r3,#0x600]
100d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r9,r9,r5
101d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r9,r6,r7
102d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r2,r5,r6,r8
103d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x1c]
104d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r11,r11,r5
105d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r8,r9,r6,r8
106d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x20]
107d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r3,#0x200]
108d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r11,r6,r7
109d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r12,#0x580]
110d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    lr,r9,r2,r5
111d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    lr,r11,r2,r6
112d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x24]
113d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r12,#0x280]
114d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r11,r2,r5
115d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r5,r2,r6
116d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x28]
117d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r3,#0x500]
118d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r9,r9,r5
119d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r9,r6,r7
120d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r2,r5,r6,r8
121d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x2c]
122d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r11,r11,r5
123d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
124d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r8,r9,r6,r8
125d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r11,r6,r7
126d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r3,#0x300]
127d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r1,#0x30]
128d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r12,#0x480]
129d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r9,r8,r5
130d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r11,r8,r6
131d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r1,#0x34]
132d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r12,#0x380]
133d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r11,r8,r5
134d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r5,r8,r6
135d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x38]
136d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
137d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
138d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r3,#0x400]
139d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r9,r9,r5
140d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r9,r6,r12
141d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r8,r7,r6,r3
142d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        cmp      r4,#0x210
143d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r11,r11,r7
144d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
145d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x3c]
146d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r1,r1,#0x40
147d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r3,r9,r2,r3
148d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r12,r11,r2,r12
149d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
150d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        blt      Loop_i
151d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
152d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,r9, asr #6
153d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r4,r3, asr #15
154d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        teq      r4,r3, asr #31
155d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,LOW_16BITS
156d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[sp]
157d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        eorne    r3,r12,r3,asr #31
158d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r4,[sp,#8]
159d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r2,r10,lsl r2
160d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r4,r4,r2,lsl #1
161d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        strh     r3,[r4]
162d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
163d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,r11,asr #6
164d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r4,r3,asr #15
165d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        teq      r4,r3,asr #31
166d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        eorne    r3,r12,r3,asr #31
167d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[sp,#0xc]
168d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r11,[sp,#8]
169d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        rsb      r2,r2,r12,lsl #5
170d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r2,r11,r2,lsl #1
171d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        strh     r3,[r2]
172d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
173d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r10,r10,#1
174d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        cmp      r10,#0x10
175d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        blt      Loop_j
176d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
177d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ Accumulators r4, r5 Initialization
178d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
179d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r4,#0x20
180d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r5,#0x20
181d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,#0x10
182d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberPolyPh_filter_loop2:
183d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r2,r0,r3,lsl #2
184d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r2]
185d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r1]
186d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r2,#0x80]
187d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r12,r4,r8,r12
188d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r1,#4]
189d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r2,#0x40]
190d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r6,r4,r12,r6
191d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
192d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r1,#8]
193d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r2,#0x180]
194d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r5,r12,r7
195d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r2,#0x100]
196d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r1,#0xc]
197d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r2,#0x140]
198d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r12,r4,r7,r12
199d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r1,#0x10]
200d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r3,r3,#0x80
201d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r6,r4,r12,r6
202d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x14]
203d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        cmp      r3,#0x210
204d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r2,r5,r6,r2
205d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r1,r1,#0x18
206d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
207d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        blt      PolyPh_filter_loop2
208d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r4,asr #6
209d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r2,r0,asr #15
210d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        teq      r2,r0,asr #31
211d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldrne    r12,LOW_16BITS
212d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[sp,#8]
213d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        eorne    r0,r12,r0,asr #31
214d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        strh     r0,[r1,#0]
215d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r5,asr #6
216d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r2,r0,asr #15
217d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        teq      r2,r0,asr #31
218d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldrne    r12,LOW_16BITS
219d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[sp]
220d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,#0x10
221d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        eorne    r0,r12,r0,asr #31
222d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[sp,#8]
223d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,r1,lsl r2
224d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r1,r12,r1,lsl #1
225d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        strh     r0,[r1]
226d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      sp,sp,#0x10
227d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldmfd    sp!,{r4-r11,pc}
228d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
229d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberPolyPh_filter_coeff:
2309a2c14b2c96625d5be73e1a7627f5d2a3091c4a2Ard Biesheuvel        .word      pqmfSynthWin-PolyPh_filter_coeff
231d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberLOW_16BITS:
232d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        .word      0x00007fff
233d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
234