OLD | NEW |
1 // | 1 // |
2 // Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 // Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |
3 // | 3 // |
4 // Use of this source code is governed by a BSD-style license | 4 // Use of this source code is governed by a BSD-style license |
5 // that can be found in the LICENSE file in the root of the source | 5 // that can be found in the LICENSE file in the root of the source |
6 // tree. An additional intellectual property rights grant can be found | 6 // tree. An additional intellectual property rights grant can be found |
7 // in the file PATENTS. All contributing project authors may | 7 // in the file PATENTS. All contributing project authors may |
8 // be found in the AUTHORS file in the root of the source tree. | 8 // be found in the AUTHORS file in the root of the source tree. |
9 // | 9 // |
10 // This is a modification of armSP_FFT_CToC_SC32_Radix2_unsafe_s.s | 10 // This is a modification of armSP_FFT_CToC_SC32_Radix2_unsafe_s.s |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 #define pointStep32 w9 | 63 #define pointStep32 w9 |
64 #define grpCount x10 | 64 #define grpCount x10 |
65 #define grpCount32 w10 | 65 #define grpCount32 w10 |
66 #define setCount x13 | 66 #define setCount x13 |
67 #define step x15 | 67 #define step x15 |
68 #define dstStep x11 | 68 #define dstStep x11 |
69 | 69 |
70 // Neon Registers | 70 // Neon Registers |
71 | 71 |
72 #define dW v0.2s | 72 #define dW v0.2s |
| 73 #define dWs v0.s |
73 #define dX0 v2.2s | 74 #define dX0 v2.2s |
74 #define dX1 v3.2s | 75 #define dX1 v3.2s |
75 #define dX2 v4.2s | 76 #define dX2 v4.2s |
76 #define dX3 v5.2s | 77 #define dX3 v5.2s |
77 #define dY0 v6.2s | 78 #define dY0 v6.2s |
78 #define dY1 v7.2s | 79 #define dY1 v7.2s |
79 #define dY2 v8.2s | 80 #define dY2 v8.2s |
80 #define dY3 v9.2s | 81 #define dY3 v9.2s |
81 #define qT0 v10.2s | 82 #define qT0 v10.2s |
82 #define qT1 v11.2s | 83 #define qT1 v11.2s |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 | 129 |
129 | 130 |
130 // point0: dX0-real part dX1-img part | 131 // point0: dX0-real part dX1-img part |
131 LD2 {dX0,dX1},[pSrc],pointStep | 132 LD2 {dX0,dX1},[pSrc],pointStep |
132 // point1: dX2-real part dX3-img part | 133 // point1: dX2-real part dX3-img part |
133 LD2 {dX2,dX3},[pSrc],step | 134 LD2 {dX2,dX3},[pSrc],step |
134 | 135 |
135 SUBS setCount,setCount,#2 | 136 SUBS setCount,setCount,#2 |
136 | 137 |
137 .ifeqs "\inverse", "TRUE" | 138 .ifeqs "\inverse", "TRUE" |
138 fmul qT0,dX2,dW[0] | 139 fmul qT0,dX2,dWs[0] |
139 fmla qT0,dX3,dW[1] // real part | 140 fmla qT0,dX3,dWs[1] // real part |
140 fmul qT1,dX3,dW[0] | 141 fmul qT1,dX3,dWs[0] |
141 fmls qT1,dX2,dW[1] // imag part | 142 fmls qT1,dX2,dWs[1] // imag part |
142 | 143 |
143 .else | 144 .else |
144 | 145 |
145 fmul qT0,dX2,dW[0] | 146 fmul qT0,dX2,dWs[0] |
146 fmls qT0,dX3,dW[1] // real part | 147 fmls qT0,dX3,dWs[1] // real part |
147 fmul qT1,dX3,dW[0] | 148 fmul qT1,dX3,dWs[0] |
148 fmla qT1,dX2,dW[1] // imag part | 149 fmla qT1,dX2,dWs[1] // imag part |
149 | 150 |
150 .endif | 151 .endif |
151 | 152 |
152 fsub dY0,dX0,qT0 | 153 fsub dY0,dX0,qT0 |
153 fsub dY1,dX1,qT1 | 154 fsub dY1,dX1,qT1 |
154 fadd dY2,dX0,qT0 | 155 fadd dY2,dX0,qT0 |
155 fadd dY3,dX1,qT1 | 156 fadd dY3,dX1,qT1 |
156 | 157 |
157 st2 {dY0,dY1},[pDst],outPointStep | 158 st2 {dY0,dY1},[pDst],outPointStep |
158 // dstStep = -outPointStep + 16 | 159 // dstStep = -outPointStep + 16 |
(...skipping 17 matching lines...) Expand all Loading... |
176 M_END | 177 M_END |
177 | 178 |
178 | 179 |
179 | 180 |
180 M_START armSP_FFTInv_CToC_FC32_Radix2_OutOfPlace,,d11 | 181 M_START armSP_FFTInv_CToC_FC32_Radix2_OutOfPlace,,d11 |
181 FFTSTAGE "FALSE","TRUE",INV | 182 FFTSTAGE "FALSE","TRUE",INV |
182 M_END | 183 M_END |
183 | 184 |
184 | 185 |
185 .end | 186 .end |
OLD | NEW |