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

Side by Side Diff: third_party/openmax_dl/dl/sp/src/omxSP_FFTInv_CCSToR_S32S16_Sfs_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: omxSP_FFTInv_CCSToR_S32S16_Sfs_s.s
16 @// OpenMAX DL: v1.0.2
17 @// Last Modified Revision: 7098
18 @// Last Modified Date: Thu, 16 Aug 2007
19 @//
20 @// (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
21 @//
22 @//
23 @//
24 @// Description:
25 @// Compute an inverse FFT for a complex signal
26 @//
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 .extern omxSP_FFTInv_CCSToR_S32_Sfs
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 @// Import symbols required from other files
55 @// (For example tables)
56
57
58 @//Input Registers
59
60 #define pSrc r0
61 #define pDst r1
62 #define pFFTSpec r2
63 #define scale r3
64
65
66 @// Output registers
67 #define result r0
68
69
70 #define N r6
71 #define pOut r5
72 #define pTmpDst r4
73
74
75 @// Neon registers
76
77 #define dX0 D0.S32
78 #define dX01 D1.S32
79 #define qX0 Q0.S32
80 #define dY0 D2.S16
81 #define dY0S32 D2.S32
82
83
84
85 @// Allocate stack memory required by the function
86
87 @// Write function header
88 M_START omxSP_FFTInv_CCSToR_S32S16_Sfs,r11,d15
89
90 .set ARMsFFTSpec_N, 0
91 .set ARMsFFTSpec_pBitRev, 4
92 .set ARMsFFTSpec_pTwiddle, 8
93 .set ARMsFFTSpec_pBuf, 12
94
95 @// Define stack arguments
96
97 @// Read the size from structure and take log
98 LDR N, [pFFTSpec, #ARMsFFTSpec_N]
99
100 @// Read other structure parameters
101 @//LDR pTwiddle, [pFFTSpec, #ARMsFFTSpec_pTwiddle]
102 LDR pOut, [pFFTSpec, #ARMsFFTSpec_pBuf]
103
104
105 MOV pTmpDst,pDst
106 ADD pDst,pOut,N, LSL #2
107
108
109 BL omxSP_FFTInv_CCSToR_S32_Sfs
110
111 ADD pDst,pOut,N, LSL #2
112
113 CMP N,#2
114 BGT copyLoop
115 BEQ copyS32ToS16
116 VLD1 dX0[0],[pDst]
117 VQMOVN dY0,qX0
118 VST1 dY0[0],[pTmpDst]
119
120 B End
121
122 copyS32ToS16:
123
124 VLD1 dX0,[pDst]
125 VQMOVN dY0,qX0
126 VST1 dY0S32[0],[pTmpDst]
127 B End
128
129 copyLoop:
130
131 VLD1 {dX0,dX01},[pDst]!
132 SUBS N,N,#4
133 VQMOVN dY0,qX0
134 VST1 dY0,[pTmpDst]!
135
136 BGT copyLoop
137
138
139 End:
140 @// Set return value
141 MOV result, #OMX_Sts_NoErr
142
143 @// Write function tail
144 M_END
145
146 .end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698