• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1@/******************************************************************************
2@ *
3@ * Copyright (C) 2018 The Android Open Source Project
4@ *
5@ * Licensed under the Apache License, Version 2.0 (the "License");
6@ * you may not use this file except in compliance with the License.
7@ * You may obtain a copy of the License at:
8@ *
9@ * http://www.apache.org/licenses/LICENSE-2.0
10@ *
11@ * Unless required by applicable law or agreed to in writing, software
12@ * distributed under the License is distributed on an "AS IS" BASIS,
13@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14@ * See the License for the specific language governing permissions and
15@ * limitations under the License.
16@ *
17@ *****************************************************************************
18@ * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19@*/
20
21
22.text
23.p2align 2
24        .global ixheaacd_inv_dit_fft_8pt_armv7
25
26ixheaacd_inv_dit_fft_8pt_armv7:
27
28
29    STMFD           sp!, {r4-r12, lr}
30    LDR             r3, [r0, #0]
31    LDR             r4, [r0, #0x20]
32    LDR             r5, [r0, #0x24]
33    QADD            r12, r3, r4
34    LDR             r6, [r0, #0x30]
35    QSUB            r8, r3, r4
36    LDR             r3, [r0, #4]
37    LDR             r9, [r0, #0x34]
38    QADD            r4, r3, r5
39    SUB             sp, sp, #0x14
40    QSUB            r5, r3, r5
41    LDR             lr, [r0, #0x10]
42    LDR             r3, [r0, #0x14]
43    QADD            r10, lr, r6
44    QSUB            r6, lr, r6
45    QADD            r7, r3, r9
46    QSUB            r9, r3, r9
47
48
49    QADD            r3, r12, r10
50    QSUB            lr, r12, r10
51    QADD            r12, r4, r7
52    QSUB            r7, r4, r7
53    QSUB            r4, r8, r9
54
55    STR             r7, [sp, #8]
56    QADD            r7, r8, r9
57    QADD            r8, r5, r6
58    STR             r7, [sp, #0xc]
59    QSUB            r5, r5, r6
60
61    STMIA           sp, {r8, lr}
62    STR             r5, [sp, #0x10]
63
64
65
66    LDR             r5, [r0, #8]
67    LDR             lr, [r0, #0x28]
68    LDR             r9, [r0, #0x2c]
69    QADD            r7, r5, lr
70    LDR             r11, [r0, #0x38]
71    LDR             r6, [r0, #0xc]
72    QSUB            r5, r5, lr
73    LDR             lr, [r0, #0x18]
74    QADD            r8, r6, r9
75    QSUB            r6, r6, r9
76
77
78
79    QADD            r10, lr, r11
80    QSUB            r9, lr, r11
81    LDR             r11, [r0, #0x1c]
82    LDR             r0, [r0, #0x3c]
83
84    MOV             lr, r11
85    QADD            r11, r11, r0
86    QSUB            r0, lr, r0
87
88
89    QADD            lr, r7, r10
90    QSUB            r10, r7, r10
91    QADD            r7, r8, r11
92    QSUB            r11, r8, r11
93
94    QSUB            r8, r5, r0
95    QADD            r5, r5, r0
96    QADD            r0, r6, r9
97    QSUB            r6, r6, r9
98
99
100    QADD            r9, r3, lr
101    QSUB            r3, r3, lr
102    STR             r9, [r1, #0]
103
104    QADD            r9, r12, r7
105    LDR             lr, [sp, #4]
106    STR             r9, [r2, #0]
107    QSUB            r9, r12, r7
108
109
110    QSUB            r12, lr, r11
111    QADD            r11, lr, r11
112    LDR             lr, [sp, #8]
113    STR             r11, [r1, #0x10]
114    QADD            r7, lr, r10
115    QSUB            r10, lr, r10
116
117    LDR             r11, =0x00005a82
118    STR             r10, [r2, #0x10]
119
120    QSUB            r10, r8, r0
121    QADD            r0, r8, r0
122    SMULWB          r10, r10, r11
123    SMULWB          r0, r0, r11
124    MOV             r10, r10, LSL #1
125
126    QADD            r8, r4, r10
127    LDR             lr, [sp, #0]
128
129    STR             r8, [r1, #4]
130    MOV             r0, r0, LSL #1
131    QADD            r8, lr, r0
132
133    QSUB            r4, r4, r10
134    STR             r8, [r2, #4]
135    QSUB            r0, lr, r0
136
137    QADD            r12, r12, r4
138    QADD            r0, r7, r0
139    STR             r12, [r1, #8]
140    STR             r0, [r2, #8]
141
142    QADD            r0, r5, r6
143    LDR             r7, [sp, #0xc]
144    SMULWB          r0, r0, r11
145
146    QSUB            r12, r5, r6
147    MOV             r0, r0, LSL #1
148    SMULWB          r12, r12, r11
149    LDR             r5, [sp, #0x10]
150    QSUB            r4, r7, r0
151    MOV             r12, r12, LSL #1
152    QADD            r10, r5, r12
153    QADD            r3, r3, r4
154    QADD            lr, r9, r10
155    QADD            r0, r7, r0
156    QSUB            r10, r5, r12
157    STR             r3, [r1, #0xc]
158    STR             lr, [r2, #0xc]
159    STR             r0, [r1, #0x14]
160    STR             r10, [r2, #0x14]
161    ADD             sp, sp, #0x14
162    LDMFD           sp!, {r4-r12, pc}
163
164