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
38d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
39d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
40d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
41d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@------------------------------------------------------------------------------
42d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
43d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber.global pvmp3_polyphase_filter_window
44d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
45d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huberpvmp3_polyphase_filter_window:
46d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        stmfd    sp!,{r0-r2,r4-r11,lr}
47d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
48d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      sp,sp,#4
499a2c14b2c96625d5be73e1a7627f5d2a3091c4a2Ard Biesheuvel        adr      r2,PolyPh_filter_coeff
509a2c14b2c96625d5be73e1a7627f5d2a3091c4a2Ard Biesheuvel        ldr      r1,[r2]
519a2c14b2c96625d5be73e1a7627f5d2a3091c4a2Ard Biesheuvel        add      r1,r2
52d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[sp,#0xc]
53d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
54d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r2,r2,#1
55d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r10,#1
56d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r2,[sp]
57d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
58d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ Accumulators r9, r11::> Initialization
59d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
60d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberLoop_j:
61d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r9,  #0x20
62d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r11, #0x20
63d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r4,  #0x10
64d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberLoop_i:
65d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r2,r4,r10
66d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r3,r0,r2,lsl #2
67d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r2,r4,r10
68d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r3]
69d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r1]
70d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r12,r0,r2,lsl #2
71d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r12,#0x780]
72d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r2,r9,lr,r5
73d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r2,r11,lr,r6
74d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#4]
75d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r12,#0x80]
76d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r11,r2,r5
77d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r5,r2,r6
78d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r9,r9,r5
79d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r1,#8]
80d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r3,#0x700]
81d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r4,r4,#0x200
82d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r6,r9,r5,r7
83d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r2,r5,r8
84d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r1,#0xc]
85d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r11,r11,r2
86d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r8,r9,r5,r8
87d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r11,r5,r7
88d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r3,#0x100]
89d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x10]
90d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r12,#0x680]
91d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    lr,r9,r2,r5
92d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    lr,r11,r2,r6
93d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x14]
94d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r12,#0x180]
95d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r11,r2,r5
96d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r5,r2,r6
97d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x18]
98d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r3,#0x600]
99d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r9,r9,r5
100d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r9,r6,r7
101d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r2,r5,r6,r8
102d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x1c]
103d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r11,r11,r5
104d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r8,r9,r6,r8
105d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x20]
106d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r3,#0x200]
107d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r11,r6,r7
108d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r12,#0x580]
109d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    lr,r9,r2,r5
110d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    lr,r11,r2,r6
111d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x24]
112d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r12,#0x280]
113d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r11,r2,r5
114d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r5,r2,r6
115d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x28]
116d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r3,#0x500]
117d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r9,r9,r5
118d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r9,r6,r7
119d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r2,r5,r6,r8
120d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x2c]
121d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r11,r11,r5
122d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
123d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r8,r9,r6,r8
124d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r11,r6,r7
125d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r5,[r3,#0x300]
126d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r1,#0x30]
127d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r12,#0x480]
128d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r9,r8,r5
129d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r11,r8,r6
130d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r1,#0x34]
131d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r12,#0x380]
132d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r5,r11,r8,r5
133d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r6,r5,r8,r6
134d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x38]
135d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
136d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
137d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r3,#0x400]
138d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r9,r9,r5
139d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r9,r6,r12
140d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r8,r7,r6,r3
141d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        cmp      r4,#0x210
142d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r11,r11,r7
143d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
144d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x3c]
145d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r1,r1,#0x40
146d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r3,r9,r2,r3
147d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r12,r11,r2,r12
148d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
149d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        blt      Loop_i
150d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
151d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,r9, asr #6
152d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r4,r3, asr #15
153d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        teq      r4,r3, asr #31
154d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,LOW_16BITS
155d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[sp]
156d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        eorne    r3,r12,r3,asr #31
157d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r4,[sp,#8]
158d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r2,r10,lsl r2
159d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r4,r4,r2,lsl #1
160d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        strh     r3,[r4]
161d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
162d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,r11,asr #6
163d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r4,r3,asr #15
164d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        teq      r4,r3,asr #31
165d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        eorne    r3,r12,r3,asr #31
166d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[sp,#0xc]
167d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r11,[sp,#8]
168d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        rsb      r2,r2,r12,lsl #5
169d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r2,r11,r2,lsl #1
170d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        strh     r3,[r2]
171d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
172d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r10,r10,#1
173d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        cmp      r10,#0x10
174d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        blt      Loop_j
175d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
176d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber@ Accumulators r4, r5 Initialization
177d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
178d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r4,#0x20
179d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r5,#0x20
180d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,#0x10
181d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberPolyPh_filter_loop2:
182d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r2,r0,r3,lsl #2
183d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r2]
184d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r1]
185d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r2,#0x80]
186d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r12,r4,r8,r12
187d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r1,#4]
188d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r2,#0x40]
189d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r6,r4,r12,r6
190d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
191d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r1,#8]
192d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r2,#0x180]
193d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r7,r5,r12,r7
194d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r2,#0x100]
195d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r7,[r1,#0xc]
196d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r2,#0x140]
197d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r12,r4,r7,r12
198d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r1,#0x10]
199d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r3,r3,#0x80
200d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r6,r4,r12,r6
201d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r6,[r1,#0x14]
202d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        cmp      r3,#0x210
203d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r2,r5,r6,r2
204d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r1,r1,#0x18
205d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
206d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        blt      PolyPh_filter_loop2
207d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r4,asr #6
208d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r2,r0,asr #15
209d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        teq      r2,r0,asr #31
210d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldrne    r12,LOW_16BITS
211d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[sp,#8]
212d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        eorne    r0,r12,r0,asr #31
213d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        strh     r0,[r1,#0]
214d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r5,asr #6
215d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r2,r0,asr #15
216d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        teq      r2,r0,asr #31
217d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldrne    r12,LOW_16BITS
218d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[sp]
219d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,#0x10
220d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        eorne    r0,r12,r0,asr #31
221d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[sp,#8]
222d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,r1,lsl r2
223d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r1,r12,r1,lsl #1
224d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        strh     r0,[r1]
225d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      sp,sp,#0x10
226d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldmfd    sp!,{r4-r11,pc}
227d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
228d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberPolyPh_filter_coeff:
2299a2c14b2c96625d5be73e1a7627f5d2a3091c4a2Ard Biesheuvel        .word      pqmfSynthWin-PolyPh_filter_coeff
230d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberLOW_16BITS:
231d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        .word      0x00007fff
232d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
233