Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(238)

Side by Side Diff: dl/sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix4_s.S

Issue 1420973006: arm64: clang assembler compatability (Closed) Base URL: https://chromium.googlesource.com/external/webrtc/deps/third_party/openmax@master
Patch Set: arm64: clang assembler compatibility Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 // 10 //
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 #define stepTwiddle x10 73 #define stepTwiddle x10
74 #define setCount x11 74 #define setCount x11
75 #define srcStep x12 75 #define srcStep x12
76 #define setStep x13 76 #define setStep x13
77 #define dstStep x14 77 #define dstStep x14
78 #define twStep x15 78 #define twStep x15
79 79
80 // Neon Registers 80 // Neon Registers
81 81
82 #define dW1 v0.2s 82 #define dW1 v0.2s
83 #define dW1s v0.s
83 #define dW2 v1.2s 84 #define dW2 v1.2s
85 #define dW2s v1.s
84 #define dW3 v2.2s 86 #define dW3 v2.2s
87 #define dW3s v2.s
85 88
86 #define dXr0 v4.2s 89 #define dXr0 v4.2s
87 #define dXi0 v5.2s 90 #define dXi0 v5.2s
88 #define dXr1 v6.2s 91 #define dXr1 v6.2s
89 #define dXi1 v7.2s 92 #define dXi1 v7.2s
90 #define dXr2 v8.2s 93 #define dXr2 v8.2s
91 #define dXi2 v9.2s 94 #define dXi2 v9.2s
92 #define dXr3 v10.2s 95 #define dXr3 v10.2s
93 #define dXi3 v11.2s 96 #define dXi3 v11.2s
94 #define dYr0 v12.2s 97 #define dYr0 v12.2s
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 ADD pSrc,pSrc,pointStep 178 ADD pSrc,pSrc,pointStep
176 179
177 180
178 // Loop on the sets 181 // Loop on the sets
179 182
180 radix4SetLoop\name : 183 radix4SetLoop\name :
181 184
182 185
183 186
184 .ifeqs "\inverse", "TRUE" 187 .ifeqs "\inverse", "TRUE"
185 fmul dZr1,dXr1,dW1[0] 188 fmul dZr1,dXr1,dW1s[0]
186 fmul dZi1,dXi1,dW1[0] 189 fmul dZi1,dXi1,dW1s[0]
187 fmul dZr2,dXr2,dW2[0] 190 fmul dZr2,dXr2,dW2s[0]
188 fmul dZi2,dXi2,dW2[0] 191 fmul dZi2,dXi2,dW2s[0]
189 fmul dZr3,dXr3,dW3[0] 192 fmul dZr3,dXr3,dW3s[0]
190 fmul dZi3,dXi3,dW3[0] 193 fmul dZi3,dXi3,dW3s[0]
191 194
192 fmla dZr1,dXi1,dW1[1] // real part 195 fmla dZr1,dXi1,dW1s[1] // real part
193 fmls dZi1,dXr1,dW1[1] // imag part 196 fmls dZi1,dXr1,dW1s[1] // imag part
194 197
195 // data[1] for next iteration 198 // data[1] for next iteration
196 ld2 {dXr1,dXi1},[pSrc],pointStep 199 ld2 {dXr1,dXi1},[pSrc],pointStep
197 200
198 fmla dZr2,dXi2,dW2[1] // real part 201 fmla dZr2,dXi2,dW2s[1] // real part
199 fmls dZi2,dXr2,dW2[1] // imag part 202 fmls dZi2,dXr2,dW2s[1] // imag part
200 203
201 // data[2] for next iteration 204 // data[2] for next iteration
202 ld2 {dXr2,dXi2},[pSrc],pointStep 205 ld2 {dXr2,dXi2},[pSrc],pointStep
203 206
204 fmla dZr3,dXi3,dW3[1] // real part 207 fmla dZr3,dXi3,dW3s[1] // real part
205 fmls dZi3,dXr3,dW3[1] // imag part 208 fmls dZi3,dXr3,dW3s[1] // imag part
206 .else 209 .else
207 fmul dZr1,dXr1,dW1[0] 210 fmul dZr1,dXr1,dW1s[0]
208 fmul dZi1,dXi1,dW1[0] 211 fmul dZi1,dXi1,dW1s[0]
209 fmul dZr2,dXr2,dW2[0] 212 fmul dZr2,dXr2,dW2s[0]
210 fmul dZi2,dXi2,dW2[0] 213 fmul dZi2,dXi2,dW2s[0]
211 fmul dZr3,dXr3,dW3[0] 214 fmul dZr3,dXr3,dW3s[0]
212 fmul dZi3,dXi3,dW3[0] 215 fmul dZi3,dXi3,dW3s[0]
213 216
214 fmls dZr1,dXi1,dW1[1] // real part 217 fmls dZr1,dXi1,dW1s[1] // real part
215 fmla dZi1,dXr1,dW1[1] // imag part 218 fmla dZi1,dXr1,dW1s[1] // imag part
216 219
217 // data[1] for next iteration 220 // data[1] for next iteration
218 ld2 {dXr1,dXi1},[pSrc],pointStep 221 ld2 {dXr1,dXi1},[pSrc],pointStep
219 222
220 fmls dZr2,dXi2,dW2[1] // real part 223 fmls dZr2,dXi2,dW2s[1] // real part
221 fmla dZi2,dXr2,dW2[1] // imag part 224 fmla dZi2,dXr2,dW2s[1] // imag part
222 225
223 // data[2] for next iteration 226 // data[2] for next iteration
224 ld2 {dXr2,dXi2},[pSrc],pointStep 227 ld2 {dXr2,dXi2},[pSrc],pointStep
225 228
226 fmls dZr3,dXi3,dW3[1] // real part 229 fmls dZr3,dXi3,dW3s[1] // real part
227 fmla dZi3,dXr3,dW3[1] // imag part 230 fmla dZi3,dXr3,dW3s[1] // imag part
228 .endif 231 .endif
229 232
230 // data[3] & update pSrc to data[0] 233 // data[3] & update pSrc to data[0]
231 // But don't read on the very last iteration because that reads past 234 // But don't read on the very last iteration because that reads past
232 // the end of pSrc. The last iteration is grpCount = 4, setCount = 2. 235 // the end of pSrc. The last iteration is grpCount = 4, setCount = 2.
233 cmp grpCount, #4 236 cmp grpCount, #4
234 237
235 b.ne skipUpdate\name 238 b.ne skipUpdate\name
236 cmp setCount, #2 239 cmp setCount, #2
237 b.ne skipUpdate\name 240 b.ne skipUpdate\name
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 FFTSTAGE "FALSE","FALSE",FWD 333 FFTSTAGE "FALSE","FALSE",FWD
331 M_END 334 M_END
332 335
333 336
334 M_START armSP_FFTInv_CToC_FC32_Radix4_OutOfPlace,,d15 337 M_START armSP_FFTInv_CToC_FC32_Radix4_OutOfPlace,,d15
335 FFTSTAGE "FALSE","TRUE",INV 338 FFTSTAGE "FALSE","TRUE",INV
336 M_END 339 M_END
337 340
338 341
339 .end 342 .end
OLDNEW
« no previous file with comments | « dl/sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix2_s.S ('k') | dl/sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix8_fs_s.S » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698