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_dct_18.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        EXPORT pvmp3_mdct_18
32d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
33d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        IMPORT ||Lib$$Request$$armlib|| [WEAK]
34d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        IMPORT ||Lib$$Request$$cpplib|| [WEAK]
35d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        IMPORT pvmp3_dct_9
36d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
37d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
38d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;------------------------------------------------------------------------------
39d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
40d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber AREA |.text|, CODE, READONLY, ALIGN=2
41d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
42d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
43d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;------------------------------------------------------------------------------
44d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
45d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber|pvmp3_mdct_18| PROC
46d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        stmfd    sp!,{r4-r10,lr}
47d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r7,r2
48d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,table
49d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r6,r1
50d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r3,r2,#0x24
51d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r12,r3,#0x44
52d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r1,r0,#0x44
53d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r5,r0
54d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
55d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;    for ( i=9; i!=0; i--)
56d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;    {
57d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
58d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r4,#9
59d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberLoop_1
60d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
61d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;       tmp  = *(pt_vec);
62d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;		tmp1 = *(pt_vec_o);
63d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
64d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r0]		;; tmp  == lr
65d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r3],#4		;; tmp1 == r8
66d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
67d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;        tmp  = fxp_mul32_Q32( tmp<<1,  *(pt_cos++  ));
68d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;        tmp1 = fxp_mul32_Q27( tmp1, *(pt_cos_x--));
69d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
70d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      lr,lr,lsl #1
71d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r10,lr,r8,lr
72d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r8,[r12],#-4
73d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r9,[r1]
74d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        subs     r4,r4,#1
75d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r9,r10,r8,r9
76d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r8,r9,lsr #27
77d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r8,r8,r10,lsl #5
78d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
79d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;        *(pt_vec++)   =   tmp + tmp1 ;
80d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;        *(pt_vec_o--) = fxp_mul32_Q28( (tmp - tmp1), *(pt_cos_split++));
81d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
82d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r9,lr,r8
83d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r8,lr,r8
84d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r2],#4
85d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r9,[r0],#4
86d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r8,r9,lr,r8
87d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      lr,r8,lsr #28
88d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      lr,lr,r9,lsl #4
89d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      lr,[r1],#-4
90d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        bne      Loop_1
91d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
92d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;		}
93d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
94d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r5			;; r0 = vec
95d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        bl       pvmp3_dct_9
96d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r0,r5,#0x24	;; r0 = &vec[9]
97d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        bl       pvmp3_dct_9
98d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
99d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r5,#0x20]
100d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r5,#0x40]
101d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r5,#0x40]
102d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r5,#0x1c]
103d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r5,#0x38]
104d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r5,#0x38]
105d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x18]
106d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r5,#0x30]
107d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r5,#0x30]
108d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r5,#0x14]
109d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x28]
110d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r12,[r5,#0x28]
111d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r5,#0x10]
112d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r12,[r5,#0x20]
113d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r5,#0xc]
114d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r12,[r5,#0x18]
115d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r5,#8]
116d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r12,[r5,#0x10]
117d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r5,#4]
118d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r12,[r5,#8]
119d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r5,#0x24]
120d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r12,r12,r1
121d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r12,[r5,#4]
122d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r5,#0x2c]
123d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r1,r12,r1
124d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r5,#0xc]
125d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r1,r12,r0
126d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r5,#0x14]
127d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x34]
128d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r0,r1,r0
129d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r5,#0x1c]
130d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r0,r1,r3
131d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r5,#0x24]
132d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x3c]
133d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r3,r1,r3
134d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r1,r1,r2
135d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r5,#0x34]
136d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r3,[r5,#0x2c]
137d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x44]
138d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        sub      r1,r1,r2
139d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r5,#0x3c]
140d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r5,#0]
141d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
142d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HuberLoop_2
143d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r1,r5,r4,lsl #2
144d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r1,#0x28]
145d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r6,r4,lsl #2]
146d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r0,r0,r2
147d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r1,#0x28]
148d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,r4,lsl #2]
149d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r1,#4]
150d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r0,r3,lr,r0
151d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r2
152d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r2,r12,r1
153d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        rsb      r2,r2,#0
154d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r3,[r5,r4,lsl #2]
155d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r2,[r6,r4,lsl #2]
156d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r4,r4,#1
157d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        cmp      r4,#6
158d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r12,r1
159d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
160d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        blt      Loop_2
161d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
162d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x40]
163d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r6,#0x18]
164d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r3,r0,r1
165d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r3,[r5,#0x40]
166d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,r4,lsl #2]
167d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,r3,lsl #1
168d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r5,#0x1c]
169d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r3,r2,lr,r3
170d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r3,r12,r0
171d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r2,[r5,#0x18]
172d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r2,[r6,#0x1c]
173d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        rsb      r3,r3,#0
174d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r3,[r6,#0x18]
175d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r5,#0x20]
176d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r0,r3,r0
177d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        rsb      r0,r0,#0
178d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r6,#0x1c]
179d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r5,#0x44]
180d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r6,#0x20]
181d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r3,r3,r1
182d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,r2
183d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r10,[r7,#0x1c]
184d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r2,r3,lsl #1
185d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r12,r1,r10,r2
186d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r5,#0x1c]
187d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x20]
188d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r5,#0x24]
189d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        add      r1,r1,r3
190d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        rsb      r1,r1,#0
191d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r6,#0x20]
192d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x44]
193d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r7,#0x20]
194d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,r1,lsl #1
195d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r12,r0,r3,r1
196d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,#0x24]
197d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r6,#0x24]
198d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r5,#0x20]
199d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r1,r3,lr,r1
200d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r6,#0x40]
201d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r6,#0x44]
202d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r3,[r5,#0x24]
203d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x28]
204d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r7,#0x44]
205d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,r1,lsl #1
206d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r1,r12,r3,r1
207d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x40]
208d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r12,[r5,#0x44]
209d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        rsb      r8,r1,#0
210d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r8,[r5,#0x28]
211d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r5,#0x2c]
212d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r7,#0x40]
213d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,r1,lsl #1
214d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r1,r0,r3,r1
215d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r5,#0x40]
216d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r5,#0x3c]
217d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r6,#0x38]
218d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r6,#0x3c]
219d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        rsb      r9,r0,#0
220d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r9,[r5,#0x2c]
221d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r5,#0x30]
222d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r7,#0x3c]
223d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r0,lsl #1
224d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r0,r3,r12,r0
225d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r3,[r5,#0x3c]
226d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r5,#0x38]
227d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        rsb      r0,r0,#0
228d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r5,#0x30]
229d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r5,#0x34]
230d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r7,#0x38]
231d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,r3,lsl #1
232d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r3,r1,r12,r3
233d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r0,lsl #1
234d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r5,#0x38]
235d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r4,[r7,#0x34]
236d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r6,#0x34]
237d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r6,#0x30]
238d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r0,r1,r4,r0
239d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r6,#0x2c]
240d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r6,#0x28]
241d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r5,#0x34]
242d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r7,#0x30]
243d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r9,lsl #1
244d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r0,r3,r1,r0
245d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r8,lsl #1
246d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r7,#0x2c]
247d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r3,[r5,#0x30]
248d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r0,r12,r1,r0
249d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r7,#0x28]
250d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r12,[r5,#0x2c]
251d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smlal    r2,lr,r0,r2
252d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      lr,[r5,#0x28]
253d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r6,#4]
254d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r7,#0x48]
255d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r2,r1,lsl #1
256d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r1,[r6,#0x20]
257d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r6]
258d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,r1,lsl #1
259d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r4,lr,r12,r1
260d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r3,[r6,#0x1c]
261d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      lr,[r6]
262d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r7,#0x4c]
263d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,r3,lsl #1
264d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r4,lr,r12,r3
265d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r0,lsl #1
266d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r7,#0x64]
267d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      lr,[r6,#4]
268d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r4,lr,r12,r2
269d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r7,#0x68]
270d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      lr,[r6,#0x1c]
271d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r4,lr,r12,r0
272d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r7,#0x6c]
273d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      lr,[r6,#0x20]
274d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    lr,r0,r12,r0
275d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r7,#0x70]
276d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r6,#0x24]
277d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r0,r2,r12,r2
278d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r7,#0x88]
279d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r2,[r6,#0x28]
280d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r3,r2,r0,r3
281d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r7,#0x8c]
282d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r2,[r6,#0x40]
283d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r2,r1,r0,r1
284d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r6,#0x44]
285d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r6,#0x18]
286d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,#0x50]
287d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r1,r0,lsl #1
288d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r6,#0x14]
289d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r5,r4,lr,r1
290d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r12,[r6,#0x10]
291d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r3,r0,lsl #1
292d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r6,#0xc]
293d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r12,r12,lsl #1
294d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r2,r0,lsl #1
295d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r6,#8]
296d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r4,[r6,#8]
297d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,#0x54]
298d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        mov      r0,r0,lsl #1
299d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r5,r4,lr,r3
300d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,#0x58]
301d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r4,[r6,#0xc]
302d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r5,r4,lr,r12
303d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,#0x5c]
304d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r4,[r6,#0x10]
305d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r5,r4,lr,r2
306d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,#0x60]
307d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r4,[r6,#0x14]
308d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r5,r4,lr,r0
309d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,#0x74]
310d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r4,[r6,#0x18]
311d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r4,r0,lr,r0
312d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      lr,[r7,#0x78]
313d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r0,[r6,#0x2c]
314d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r0,r2,lr,r2
315d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r7,#0x7c]
316d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r2,[r6,#0x30]
317d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r12,r2,r0,r12
318d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r7,#0x80]
319d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r2,[r6,#0x34]
320d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r3,r2,r0,r3
321d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldr      r0,[r7,#0x84]
322d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r2,[r6,#0x38]
323d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        smull    r2,r1,r0,r1
324d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        str      r1,[r6,#0x3c]
325d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ldmfd    sp!,{r4-r10,pc}
326d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Hubertable
327d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      ||.constdata$1||
328d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        ENDP
329d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
330d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;------------------------------------------------------------------------------
331d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
332d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber AREA |.constdata|, DATA, READONLY, ALIGN=2
333d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
334d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber;------------------------------------------------------------------------------
335d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
336d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber||.constdata$1||
337d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HubercosTerms_dct18
338d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x0807d2b0
339d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x08483ee0
340d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x08d3b7d0
341d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x09c42570
342d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x0b504f30
343d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x0df29440
344d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x12edfb20
345d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x1ee8dd40
346d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x5bca2a00
347d9618f23226f46c752e56f712bc4b505117d8b4bAndreas HubercosTerms_1_ov_cos_phi
348d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x400f9c00
349d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x408d6080
350d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x418dcb80
351d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x431b1a00
352d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x4545ea00
353d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x48270680
354d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x4be25480
355d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x50ab9480
356d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x56ce4d80
357d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x05ebb630
358d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x06921a98
359d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x0771d3a8
360d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x08a9a830
361d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x0a73d750
362d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x0d4d5260
363d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x127b1ca0
364d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x1ea52b40
365d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        DCD      0x5bb3cc80
366d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
367d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
368d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber
369d9618f23226f46c752e56f712bc4b505117d8b4bAndreas Huber        END
370