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

Side by Side Diff: third_party/openmax_dl/dl/sp/src/armSP_FFT_CToC_SC32_Radix2_fs_unsafe_s.S

Issue 12317152: Add openmax dl routines for review. MUST NOT BE LANDED (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 9 months 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
(Empty)
1 @//
2 @// Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 @//
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
6 @// tree. An additional intellectual property rights grant can be found
7 @// in the file PATENTS. All contributing project authors may
8 @// be found in the AUTHORS file in the root of the source tree.
9 @//
10 @// This file was originally licensed as follows. It has been
11 @// relicensed with permission from the copyright holders.
12
13 @//
14 @//
15 @// File Name: armSP_FFT_CToC_SC32_Radix2_fs_unsafe_s.s
16 @// OpenMAX DL: v1.0.2
17 @// Last Modified Revision: 5995
18 @// Last Modified Date: Fri, 08 Jun 2007
19 @//
20 @// (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
21 @//
22 @//
23 @//
24 @// Description:
25 @// Compute the first stage of a Radix 2 DIT in-order out-of-place FFT
26 @// stage for a N point complex signal.
27 @//
28
29
30 @// Include standard headers
31
32 #include "dl/api/armCOMM_s.h"
33 #include "dl/api/omxtypes_s.h"
34
35
36 @// Import symbols required from other files
37 @// (For example tables)
38
39
40
41
42 @// Set debugging level
43 @//DEBUG_ON SETL {TRUE}
44
45
46
47 @// Guarding implementation by the processor name
48
49
50
51 @// Guarding implementation by the processor name
52
53
54 @//Input Registers
55
56 #define pSrc r0
57 #define pDst r2
58 #define pTwiddle r1
59 #define pPingPongBuf r5
60 #define subFFTNum r6
61 #define subFFTSize r7
62
63
64 @//Output Registers
65
66
67 @//Local Scratch Registers
68
69 #define pointStep r3
70 #define outPointStep r3
71 #define grpSize r4
72 #define setCount r4
73 #define step r8
74 #define dstStep r8
75
76 @// Neon Registers
77
78 #define dX0 D0.S32
79 #define dX1 D1.S32
80 #define dY0 D2.S32
81 #define dY1 D3.S32
82
83
84 .MACRO FFTSTAGE scaled, inverse, name
85
86 @// Define stack arguments
87
88
89 @// update subFFTSize and subFFTNum into RN6 and RN7 for the next stage
90
91
92 MOV subFFTSize,#2
93 LSR grpSize,subFFTNum,#1
94 MOV subFFTNum,grpSize
95
96
97 @// pT0+1 increments pT0 by 8 bytes
98 @// pT0+pointStep = increment of 8*pointStep bytes = 4*grpSize bytes
99 @// Note: outPointStep = pointStep for firststage
100 @// Note: setCount = grpSize/2 (reuse the updated grpSize for setCount)
101
102 MOV pointStep,grpSize,LSL #3
103 RSB step,pointStep,#8
104
105
106 @// Loop on the sets for grp zero
107
108 grpZeroSetLoop\name :
109
110 VLD1 dX0,[pSrc],pointStep
111 VLD1 dX1,[pSrc],step @// step = -pointStep + 8
112 SUBS setCount,setCount,#1 @// decrement the loop counter
113
114 .ifeqs "\scaled", "TRUE"
115
116 VHADD dY0,dX0,dX1
117 VHSUB dY1,dX0,dX1
118
119 .ELSE
120
121 VADD dY0,dX0,dX1
122 VSUB dY1,dX0,dX1
123
124
125 .ENDIF
126
127 VST1 dY0,[pDst],outPointStep
128 VST1 dY1,[pDst],dstStep @// dstStep = step = -point Step + 8
129
130 BGT grpZeroSetLoop\name
131
132
133 @// reset pSrc to pDst for the next stage
134 SUB pSrc,pDst,pointStep @// pDst -= 2*grpSize
135 MOV pDst,pPingPongBuf
136
137 .endm
138
139
140
141 M_START armSP_FFTFwd_CToC_SC32_Radix2_fs_OutOfPlace_unsafe,r4
142 FFTSTAGE "FALSE","FALSE",fwd
143 M_END
144
145
146
147 M_START armSP_FFTInv_CToC_SC32_Radix2_fs_OutOfPlace_unsafe,r4
148 FFTSTAGE "FALSE","TRUE",inv
149 M_END
150
151
152
153 M_START armSP_FFTFwd_CToC_SC32_Sfs_Radix2_fs_OutOfPlace_unsafe,r4
154 FFTSTAGE "TRUE","FALSE",fwdsfs
155 M_END
156
157
158
159 M_START armSP_FFTInv_CToC_SC32_Sfs_Radix2_fs_OutOfPlace_unsafe,r4
160 FFTSTAGE "TRUE","TRUE",invsfs
161 M_END
162
163 .end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698