1250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; ------------------------------------------------------------------
2250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Copyright (C) 1998-2009 PacketVideo
3250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;
4250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Licensed under the Apache License, Version 2.0 (the "License");
5250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; you may not use this file except in compliance with the License.
6250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; You may obtain a copy of the License at
7250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;
8250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;      http://www.apache.org/licenses/LICENSE-2.0
9250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;
10250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Unless required by applicable law or agreed to in writing, software
11250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; distributed under the License is distributed on an "AS IS" BASIS,
12250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; express or implied.
14250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; See the License for the specific language governing permissions
15250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; and limitations under the License.
16250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; -------------------------------------------------------------------
17250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
18250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;
19250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;
20250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;   Filename: pvmp3_polyphase_filter_window.s
21250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;
22250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;------------------------------------------------------------------------------
23250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; REVISION HISTORY
24250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;
25250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;
26250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Who:                                   Date: MM/DD/YYYY
27250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Description:
28250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;
29250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;------------------------------------------------------------------------------
30250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
31250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        EXPORT pvmp3_polyphase_filter_window
32250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
33250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        IMPORT ||Lib$$Request$$armlib|| [WEAK]
34250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        IMPORT ||Lib$$Request$$cpplib|| [WEAK]
35250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        IMPORT pqmfSynthWin
36250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
37250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
38250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
39250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;------------------------------------------------------------------------------
40250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
41250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber AREA |.text|, CODE, READONLY, ALIGN=2
42250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
43250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
44250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber;------------------------------------------------------------------------------
45250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
46250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber|pvmp3_polyphase_filter_window| PROC
47250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
48250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        stmfd    sp!,{r0-r2,r4-r11,lr}
49250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
50250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      sp,sp,#4
51250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[sp,#0xc]
52250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r1,PolyPh_filter_coeff
53250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
54250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r2,r2,#1
55250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r10,#1
56250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        str      r2,[sp]
57250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
58250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Accumulators r9, r11::> Initialization
59250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
60250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas HuberLoop_j
61250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r9,  #0x20
62250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r11, #0x20
63250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r4,  #0x10
64250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas HuberLoop_i
65250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r2,r4,r10
66250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r3,r0,r2,lsl #2
67250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r2,r4,r10
68250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r5,[r3]
69250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      lr,[r1]
70250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r12,r0,r2,lsl #2
71250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r12,#0x780]
72250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r2,r9,lr,r5
73250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r2,r11,lr,r6
74250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[r1,#4]
75250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r7,[r12,#0x80]
76250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r5,r11,r2,r5
77250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smull    r6,r5,r2,r6
78250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r9,r9,r5
79250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r5,[r1,#8]
80250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r8,[r3,#0x700]
81250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r4,r4,#0x200
82250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r6,r9,r5,r7
83250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smull    r6,r2,r5,r8
84250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r5,[r1,#0xc]
85250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r11,r11,r2
86250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r8,r9,r5,r8
87250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r7,r11,r5,r7
88250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r5,[r3,#0x100]
89250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[r1,#0x10]
90250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r12,#0x680]
91250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    lr,r9,r2,r5
92250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    lr,r11,r2,r6
93250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[r1,#0x14]
94250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r7,[r12,#0x180]
95250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r5,r11,r2,r5
96250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smull    r6,r5,r2,r6
97250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r1,#0x18]
98250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r8,[r3,#0x600]
99250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r9,r9,r5
100250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r5,r9,r6,r7
101250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smull    r2,r5,r6,r8
102250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r1,#0x1c]
103250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r11,r11,r5
104250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r8,r9,r6,r8
105250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[r1,#0x20]
106250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r5,[r3,#0x200]
107250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r7,r11,r6,r7
108250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r12,#0x580]
109250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    lr,r9,r2,r5
110250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    lr,r11,r2,r6
111250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[r1,#0x24]
112250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r7,[r12,#0x280]
113250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r5,r11,r2,r5
114250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smull    r6,r5,r2,r6
115250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r1,#0x28]
116250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r8,[r3,#0x500]
117250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r9,r9,r5
118250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r5,r9,r6,r7
119250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smull    r2,r5,r6,r8
120250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r1,#0x2c]
121250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r11,r11,r5
122250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
123250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r8,r9,r6,r8
124250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r7,r11,r6,r7
125250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r5,[r3,#0x300]
126250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r8,[r1,#0x30]
127250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r12,#0x480]
128250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r7,r9,r8,r5
129250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r7,r11,r8,r6
130250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r8,[r1,#0x34]
131250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r12,[r12,#0x380]
132250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r5,r11,r8,r5
133250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smull    r6,r5,r8,r6
134250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r1,#0x38]
135250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
136250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
137250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r3,[r3,#0x400]
138250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r9,r9,r5
139250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r7,r9,r6,r12
140250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smull    r8,r7,r6,r3
141250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        cmp      r4,#0x210
142250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        sub      r11,r11,r7
143250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
144250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[r1,#0x3c]
145250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r1,r1,#0x40
146250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r3,r9,r2,r3
147250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r12,r11,r2,r12
148250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
149250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        blt      Loop_i
150250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
151250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r3,r9, asr #6
152250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r4,r3, asr #15
153250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        teq      r4,r3, asr #31
154250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r12,LOW_16BITS
155250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[sp]
156250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        eorne    r3,r12,r3,asr #31
157250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r4,[sp,#8]
158250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r2,r10,lsl r2
159250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r4,r4,r2,lsl #1
160250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        strh     r3,[r4]
161250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
162250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r3,r11,asr #6
163250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r4,r3,asr #15
164250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        teq      r4,r3,asr #31
165250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        eorne    r3,r12,r3,asr #31
166250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r12,[sp,#0xc]
167250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r11,[sp,#8]
168250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        rsb      r2,r2,r12,lsl #5
169250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r2,r11,r2,lsl #1
170250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        strh     r3,[r2]
171250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
172250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r10,r10,#1
173250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        cmp      r10,#0x10
174250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        blt      Loop_j
175250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
176250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Accumulators r4, r5 Initialization
177250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
178250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r4,#0x20
179250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r5,#0x20
180250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r3,#0x10
181250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas HuberPolyPh_filter_loop2
182250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r2,r0,r3,lsl #2
183250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r12,[r2]
184250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r8,[r1]
185250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r2,#0x80]
186250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r12,r4,r8,r12
187250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r12,[r1,#4]
188250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r7,[r2,#0x40]
189250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r6,r4,r12,r6
190250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
191250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r12,[r1,#8]
192250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r2,#0x180]
193250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r7,r5,r12,r7
194250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r12,[r2,#0x100]
195250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r7,[r1,#0xc]
196250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[r2,#0x140]
197250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r12,r4,r7,r12
198250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r12,[r1,#0x10]
199250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r3,r3,#0x80
200250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r6,r4,r12,r6
201250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r6,[r1,#0x14]
202250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        cmp      r3,#0x210
203250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        smlal    r2,r5,r6,r2
204250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r1,r1,#0x18
205250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
206250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        blt      PolyPh_filter_loop2
207250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r0,r4,asr #6
208250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r2,r0,asr #15
209250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        teq      r2,r0,asr #31
210250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldrne    r12,LOW_16BITS
211250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r1,[sp,#8]
212250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        eorne    r0,r12,r0,asr #31
213250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        strh     r0,[r1,#0]
214250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r0,r5,asr #6
215250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r2,r0,asr #15
216250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        teq      r2,r0,asr #31
217250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldrne    r12,LOW_16BITS
218250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r2,[sp]
219250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r1,#0x10
220250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        eorne    r0,r12,r0,asr #31
221250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldr      r12,[sp,#8]
222250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        mov      r1,r1,lsl r2
223250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      r1,r12,r1,lsl #1
224250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        strh     r0,[r1]
225250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        add      sp,sp,#0x10
226250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ldmfd    sp!,{r4-r11,pc}
227250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
228250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
229250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas HuberPolyPh_filter_coeff
230250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        DCD      pqmfSynthWin
231250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas HuberLOW_16BITS
232250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        DCD      0x00007fff
233250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
234250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        ENDP
235250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
236250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber
237250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber        END
238