1af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org/*
2af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org *  Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org *
4af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org *  Use of this source code is governed by a BSD-style license
5af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org *  that can be found in the LICENSE file in the root of the source
6af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org *  tree. An additional intellectual property rights grant can be found
7af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org *  in the file PATENTS.  All contributing project authors may
8af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org *  be found in the AUTHORS file in the root of the source tree.
9af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org */
10af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
11af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org#include "webrtc/modules/audio_processing/aec/aec_rdft.h"
12af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org#include "webrtc/typedefs.h"
13af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
14af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.orgstatic void bitrv2_128_mips(float* a) {
15af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  // n is 128
16af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  float xr, xi, yr, yi;
17af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
18af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[8];
19af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[9];
20af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[16];
21af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[17];
22af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[8] = yr;
23af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[9] = yi;
24af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[16] = xr;
25af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[17] = xi;
26af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
27af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[64];
28af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[65];
29af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[2];
30af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[3];
31af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[64] = yr;
32af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[65] = yi;
33af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[2] = xr;
34af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[3] = xi;
35af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
36af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[72];
37af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[73];
38af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[18];
39af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[19];
40af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[72] = yr;
41af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[73] = yi;
42af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[18] = xr;
43af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[19] = xi;
44af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
45af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[80];
46af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[81];
47af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[10];
48af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[11];
49af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[80] = yr;
50af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[81] = yi;
51af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[10] = xr;
52af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[11] = xi;
53af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
54af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[88];
55af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[89];
56af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[26];
57af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[27];
58af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[88] = yr;
59af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[89] = yi;
60af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[26] = xr;
61af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[27] = xi;
62af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
63af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[74];
64af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[75];
65af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[82];
66af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[83];
67af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[74] = yr;
68af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[75] = yi;
69af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[82] = xr;
70af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[83] = xi;
71af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
72af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[32];
73af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[33];
74af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[4];
75af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[5];
76af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[32] = yr;
77af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[33] = yi;
78af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[4] = xr;
79af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[5] = xi;
80af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
81af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[40];
82af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[41];
83af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[20];
84af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[21];
85af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[40] = yr;
86af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[41] = yi;
87af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[20] = xr;
88af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[21] = xi;
89af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
90af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[48];
91af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[49];
92af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[12];
93af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[13];
94af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[48] = yr;
95af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[49] = yi;
96af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[12] = xr;
97af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[13] = xi;
98af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
99af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[56];
100af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[57];
101af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[28];
102af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[29];
103af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[56] = yr;
104af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[57] = yi;
105af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[28] = xr;
106af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[29] = xi;
107af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
108af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[34];
109af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[35];
110af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[68];
111af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[69];
112af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[34] = yr;
113af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[35] = yi;
114af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[68] = xr;
115af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[69] = xi;
116af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
117af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[42];
118af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[43];
119af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[84];
120af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[85];
121af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[42] = yr;
122af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[43] = yi;
123af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[84] = xr;
124af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[85] = xi;
125af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
126af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[50];
127af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[51];
128af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[76];
129af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[77];
130af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[50] = yr;
131af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[51] = yi;
132af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[76] = xr;
133af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[77] = xi;
134af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
135af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[58];
136af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[59];
137af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[92];
138af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[93];
139af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[58] = yr;
140af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[59] = yi;
141af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[92] = xr;
142af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[93] = xi;
143af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
144af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[44];
145af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[45];
146af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[52];
147af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[53];
148af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[44] = yr;
149af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[45] = yi;
150af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[52] = xr;
151af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[53] = xi;
152af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
153af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[96];
154af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[97];
155af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[6];
156af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[7];
157af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[96] = yr;
158af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[97] = yi;
159af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[6] = xr;
160af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[7] = xi;
161af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
162af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[104];
163af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[105];
164af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[22];
165af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[23];
166af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[104] = yr;
167af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[105] = yi;
168af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[22] = xr;
169af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[23] = xi;
170af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
171af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[112];
172af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[113];
173af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[14];
174af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[15];
175af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[112] = yr;
176af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[113] = yi;
177af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[14] = xr;
178af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[15] = xi;
179af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
180af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[120];
181af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[121];
182af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[30];
183af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[31];
184af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[120] = yr;
185af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[121] = yi;
186af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[30] = xr;
187af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[31] = xi;
188af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
189af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[98];
190af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[99];
191af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[70];
192af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[71];
193af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[98] = yr;
194af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[99] = yi;
195af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[70] = xr;
196af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[71] = xi;
197af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
198af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[106];
199af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[107];
200af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[86];
201af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[87];
202af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[106] = yr;
203af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[107] = yi;
204af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[86] = xr;
205af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[87] = xi;
206af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
207af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[114];
208af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[115];
209af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[78];
210af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[79];
211af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[114] = yr;
212af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[115] = yi;
213af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[78] = xr;
214af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[79] = xi;
215af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
216af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[122];
217af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[123];
218af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[94];
219af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[95];
220af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[122] = yr;
221af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[123] = yi;
222af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[94] = xr;
223af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[95] = xi;
224af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
225af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[100];
226af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[101];
227af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[38];
228af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[39];
229af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[100] = yr;
230af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[101] = yi;
231af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[38] = xr;
232af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[39] = xi;
233af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
234af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[108];
235af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[109];
236af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[54];
237af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[55];
238af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[108] = yr;
239af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[109] = yi;
240af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[54] = xr;
241af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[55] = xi;
242af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
243af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[116];
244af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[117];
245af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[46];
246af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[47];
247af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[116] = yr;
248af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[117] = yi;
249af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[46] = xr;
250af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[47] = xi;
251af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
252af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[124];
253af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[125];
254af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[62];
255af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[63];
256af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[124] = yr;
257af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[125] = yi;
258af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[62] = xr;
259af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[63] = xi;
260af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
261af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xr = a[110];
262af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  xi = a[111];
263af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yr = a[118];
264af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  yi = a[119];
265af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[110] = yr;
266af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[111] = yi;
267af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[118] = xr;
268af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  a[119] = xi;
269af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org}
270af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
271af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.orgstatic void cft1st_128_mips(float* a) {
272af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14;
273af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  int a_ptr, p1_rdft, p2_rdft, count;
274af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float* first = rdft_wk3ri_first;
275af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float* second = rdft_wk3ri_second;
276af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
277af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  __asm __volatile (
278af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       push                                                    \n\t"
279af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       noreorder                                               \n\t"
280af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    // first 8
281af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f0],        0(%[a])                                   \n\t"
282af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],        4(%[a])                                   \n\t"
283af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f2],        8(%[a])                                   \n\t"
284af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],        12(%[a])                                  \n\t"
285af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f4],        16(%[a])                                  \n\t"
286af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],        20(%[a])                                  \n\t"
287af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f6],        24(%[a])                                  \n\t"
288af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f7],        28(%[a])                                  \n\t"
289af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],        %[f0],        %[f2]                       \n\t"
290af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],        %[f0],        %[f2]                       \n\t"
291af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],        %[f4],        %[f6]                       \n\t"
292af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],        %[f4],        %[f6]                       \n\t"
293af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],        %[f1],        %[f3]                       \n\t"
294af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],        %[f1],        %[f3]                       \n\t"
295af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],        %[f5],        %[f7]                       \n\t"
296af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],        %[f5],        %[f7]                       \n\t"
297af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f7],        %[f8],        %[f2]                       \n\t"
298af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f8],        %[f8],        %[f2]                       \n\t"
299af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f2],        %[f1],        %[f4]                       \n\t"
300af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f1],        %[f1],        %[f4]                       \n\t"
301af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f4],        %[f6],        %[f3]                       \n\t"
302af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],        %[f6],        %[f3]                       \n\t"
303af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f3],        %[f0],        %[f5]                       \n\t"
304af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],        %[f0],        %[f5]                       \n\t"
305af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],        0(%[a])                                   \n\t"
306af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f8],        16(%[a])                                  \n\t"
307af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],        28(%[a])                                  \n\t"
308af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f1],        12(%[a])                                  \n\t"
309af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f4],        4(%[a])                                   \n\t"
310af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f6],        20(%[a])                                  \n\t"
311af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],        8(%[a])                                   \n\t"
312af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f0],        24(%[a])                                  \n\t"
313af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    // second 8
314af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f0],        32(%[a])                                  \n\t"
315af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],        36(%[a])                                  \n\t"
316af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f2],        40(%[a])                                  \n\t"
317af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],        44(%[a])                                  \n\t"
318af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f4],        48(%[a])                                  \n\t"
319af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],        52(%[a])                                  \n\t"
320af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f6],        56(%[a])                                  \n\t"
321af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f7],        60(%[a])                                  \n\t"
322af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],        %[f4],        %[f6]                       \n\t"
323af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],        %[f4],        %[f6]                       \n\t"
324af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],        %[f1],        %[f3]                       \n\t"
325af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],        %[f1],        %[f3]                       \n\t"
326af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],        %[f0],        %[f2]                       \n\t"
327af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],        %[f0],        %[f2]                       \n\t"
328af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],        %[f5],        %[f7]                       \n\t"
329af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],        %[f5],        %[f7]                       \n\t"
330af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f7],        %[f4],        %[f1]                       \n\t"
331af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],        %[f4],        %[f1]                       \n\t"
332af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f1],        %[f3],        %[f8]                       \n\t"
333af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f3],        %[f3],        %[f8]                       \n\t"
334af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f8],        %[f0],        %[f5]                       \n\t"
335af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],        %[f0],        %[f5]                       \n\t"
336af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f5],        %[f6],        %[f2]                       \n\t"
337af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],        %[f2],        %[f6]                       \n\t"
338af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f9],        8(%[rdft_w])                              \n\t"
339af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f2],        %[f8],        %[f7]                       \n\t"
340af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],        %[f8],        %[f7]                       \n\t"
341af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f7],        %[f4],        %[f0]                       \n\t"
342af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f4],        %[f4],        %[f0]                       \n\t"
343af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    // prepare for loop
344af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[a_ptr],     %[a],         64                          \n\t"
345af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[p1_rdft],   %[rdft_w],    8                           \n\t"
346af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[p2_rdft],   %[rdft_w],    16                          \n\t"
347af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],     $zero,        7                           \n\t"
348af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    // finish second 8
349af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f2],        %[f9],        %[f2]                       \n\t"
350af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f8],        %[f9],        %[f8]                       \n\t"
351af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f7],        %[f9],        %[f7]                       \n\t"
352af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f4],        %[f9],        %[f4]                       \n\t"
353af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f1],        32(%[a])                                  \n\t"
354af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],        52(%[a])                                  \n\t"
355af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f5],        36(%[a])                                  \n\t"
356af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f6],        48(%[a])                                  \n\t"
357af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],        40(%[a])                                  \n\t"
358af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f8],        44(%[a])                                  \n\t"
359af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],        56(%[a])                                  \n\t"
360af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f4],        60(%[a])                                  \n\t"
361af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    // loop
362af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org   "1:                                                                  \n\t"
363af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f0],        0(%[a_ptr])                               \n\t"
364af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],        4(%[a_ptr])                               \n\t"
365af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f2],        8(%[a_ptr])                               \n\t"
366af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],        12(%[a_ptr])                              \n\t"
367af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f4],        16(%[a_ptr])                              \n\t"
368af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],        20(%[a_ptr])                              \n\t"
369af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f6],        24(%[a_ptr])                              \n\t"
370af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f7],        28(%[a_ptr])                              \n\t"
371af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],        %[f0],        %[f2]                       \n\t"
372af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],        %[f0],        %[f2]                       \n\t"
373af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],        %[f4],        %[f6]                       \n\t"
374af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],        %[f4],        %[f6]                       \n\t"
375af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],        %[f1],        %[f3]                       \n\t"
376af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],        %[f1],        %[f3]                       \n\t"
377af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],        %[f5],        %[f7]                       \n\t"
378af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],        %[f5],        %[f7]                       \n\t"
379af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f10],       4(%[p1_rdft])                             \n\t"
380af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f11],       0(%[p2_rdft])                             \n\t"
381af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f12],       4(%[p2_rdft])                             \n\t"
382af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f13],       8(%[first])                               \n\t"
383af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f14],       12(%[first])                              \n\t"
384af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f7],        %[f8],        %[f2]                       \n\t"
385af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f8],        %[f8],        %[f2]                       \n\t"
386af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],        %[f6],        %[f3]                       \n\t"
387af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],        %[f6],        %[f3]                       \n\t"
388af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],        %[f0],        %[f5]                       \n\t"
389af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],        %[f0],        %[f5]                       \n\t"
390af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f5],        %[f1],        %[f4]                       \n\t"
391af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],        %[f1],        %[f4]                       \n\t"
392af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],        0(%[a_ptr])                               \n\t"
393af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],        4(%[a_ptr])                               \n\t"
394af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f4],        %[f9],        %[f8]                       \n\t"
395af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if defined(MIPS32_R2_LE)
396af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f8],        %[f10],       %[f8]                       \n\t"
397af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f7],        %[f11],       %[f0]                       \n\t"
398af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f0],        %[f12],       %[f0]                       \n\t"
399af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f2],        %[f13],       %[f3]                       \n\t"
400af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f3],        %[f14],       %[f3]                       \n\t"
401af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s    %[f4],        %[f4],        %[f10],       %[f6]         \n\t"
402af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f8],        %[f8],        %[f9],        %[f6]         \n\t"
403af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s    %[f7],        %[f7],        %[f12],       %[f5]         \n\t"
404af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f0],        %[f0],        %[f11],       %[f5]         \n\t"
405af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s    %[f2],        %[f2],        %[f14],       %[f1]         \n\t"
406af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f3],        %[f3],        %[f13],       %[f1]         \n\t"
407af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
408af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f7],        %[f10],       %[f6]                       \n\t"
409af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f6],        %[f9],        %[f6]                       \n\t"
410af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f8],        %[f10],       %[f8]                       \n\t"
411af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f2],        %[f11],       %[f0]                       \n\t"
412af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f11],       %[f11],       %[f5]                       \n\t"
413af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f5],        %[f12],       %[f5]                       \n\t"
414af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f0],        %[f12],       %[f0]                       \n\t"
415af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f12],       %[f13],       %[f3]                       \n\t"
416af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f13],       %[f13],       %[f1]                       \n\t"
417af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f1],        %[f14],       %[f1]                       \n\t"
418af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f3],        %[f14],       %[f3]                       \n\t"
419af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],        %[f4],        %[f7]                       \n\t"
420af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],        %[f6],        %[f8]                       \n\t"
421af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f7],        %[f2],        %[f5]                       \n\t"
422af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],        %[f11],       %[f0]                       \n\t"
423af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f2],        %[f12],       %[f1]                       \n\t"
424af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],        %[f13],       %[f3]                       \n\t"
425af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
426af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f4],        16(%[a_ptr])                              \n\t"
427af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f8],        20(%[a_ptr])                              \n\t"
428af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],        8(%[a_ptr])                               \n\t"
429af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f0],        12(%[a_ptr])                              \n\t"
430af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],        24(%[a_ptr])                              \n\t"
431af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],        28(%[a_ptr])                              \n\t"
432af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f0],        32(%[a_ptr])                              \n\t"
433af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],        36(%[a_ptr])                              \n\t"
434af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f2],        40(%[a_ptr])                              \n\t"
435af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],        44(%[a_ptr])                              \n\t"
436af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f4],        48(%[a_ptr])                              \n\t"
437af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],        52(%[a_ptr])                              \n\t"
438af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f6],        56(%[a_ptr])                              \n\t"
439af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f7],        60(%[a_ptr])                              \n\t"
440af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],        %[f0],        %[f2]                       \n\t"
441af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],        %[f0],        %[f2]                       \n\t"
442af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],        %[f4],        %[f6]                       \n\t"
443af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],        %[f4],        %[f6]                       \n\t"
444af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],        %[f1],        %[f3]                       \n\t"
445af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],        %[f1],        %[f3]                       \n\t"
446af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],        %[f5],        %[f7]                       \n\t"
447af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],        %[f5],        %[f7]                       \n\t"
448af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f11],       8(%[p2_rdft])                             \n\t"
449af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f12],       12(%[p2_rdft])                            \n\t"
450af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f13],       8(%[second])                              \n\t"
451af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f14],       12(%[second])                             \n\t"
452af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f7],        %[f8],        %[f2]                       \n\t"
453af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f8],        %[f2],        %[f8]                       \n\t"
454af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],        %[f6],        %[f3]                       \n\t"
455af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],        %[f3],        %[f6]                       \n\t"
456af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],        %[f0],        %[f5]                       \n\t"
457af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],        %[f0],        %[f5]                       \n\t"
458af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f5],        %[f1],        %[f4]                       \n\t"
459af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],        %[f1],        %[f4]                       \n\t"
460af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],        32(%[a_ptr])                              \n\t"
461af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],        36(%[a_ptr])                              \n\t"
462af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f4],        %[f10],       %[f8]                       \n\t"
463af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if defined(MIPS32_R2_LE)
464af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f10],       %[f10],       %[f6]                       \n\t"
465af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f7],        %[f11],       %[f0]                       \n\t"
466af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f11],       %[f11],       %[f5]                       \n\t"
467af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f2],        %[f13],       %[f3]                       \n\t"
468af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f13],       %[f13],       %[f1]                       \n\t"
469af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f4],        %[f4],        %[f9],        %[f6]         \n\t"
470af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s    %[f10],       %[f10],       %[f9],        %[f8]         \n\t"
471af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s    %[f7],        %[f7],        %[f12],       %[f5]         \n\t"
472af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f11],       %[f11],       %[f12],       %[f0]         \n\t"
473af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s    %[f2],        %[f2],        %[f14],       %[f1]         \n\t"
474af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f13],       %[f13],       %[f14],       %[f3]         \n\t"
475af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
476af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f2],        %[f9],        %[f6]                       \n\t"
477af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f10],       %[f10],       %[f6]                       \n\t"
478af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f9],        %[f9],        %[f8]                       \n\t"
479af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f7],        %[f11],       %[f0]                       \n\t"
480af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f8],        %[f12],       %[f5]                       \n\t"
481af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f11],       %[f11],       %[f5]                       \n\t"
482af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f12],       %[f12],       %[f0]                       \n\t"
483af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f5],        %[f13],       %[f3]                       \n\t"
484af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f0],        %[f14],       %[f1]                       \n\t"
485af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f13],       %[f13],       %[f1]                       \n\t"
486af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f14],       %[f14],       %[f3]                       \n\t"
487af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f4],        %[f4],        %[f2]                       \n\t"
488af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f10],       %[f10],       %[f9]                       \n\t"
489af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f7],        %[f7],        %[f8]                       \n\t"
490af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f11],       %[f11],       %[f12]                      \n\t"
491af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f2],        %[f5],        %[f0]                       \n\t"
492af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f13],       %[f13],       %[f14]                      \n\t"
493af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
494af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f4],        48(%[a_ptr])                              \n\t"
495af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f10],       52(%[a_ptr])                              \n\t"
496af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],        40(%[a_ptr])                              \n\t"
497af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f11],       44(%[a_ptr])                              \n\t"
498af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],        56(%[a_ptr])                              \n\t"
499af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f13],       60(%[a_ptr])                              \n\t"
500af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],     %[count],     -1                          \n\t"
501af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f9],        8(%[p1_rdft])                             \n\t"
502af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[a_ptr],     %[a_ptr],     64                          \n\t"
503af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[p1_rdft],   %[p1_rdft],   8                           \n\t"
504af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[p2_rdft],   %[p2_rdft],   16                          \n\t"
505af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[first],     %[first],     8                           \n\t"
506af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "bgtz       %[count],     1b                                        \n\t"
507af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    " addiu     %[second],    %[second],    8                           \n\t"
508af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       pop                                                     \n\t"
509af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [f0] "=&f" (f0), [f1] "=&f" (f1), [f2] "=&f" (f2), [f3] "=&f" (f3),
510af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f4] "=&f" (f4), [f5] "=&f" (f5), [f6] "=&f" (f6), [f7] "=&f" (f7),
511af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f8] "=&f" (f8), [f9] "=&f" (f9), [f10] "=&f" (f10), [f11] "=&f" (f11),
512af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f12] "=&f" (f12), [f13] "=&f" (f13), [f14] "=&f" (f14),
513af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [a_ptr] "=&r" (a_ptr), [p1_rdft] "=&r" (p1_rdft), [first] "+r" (first),
514af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [p2_rdft] "=&r" (p2_rdft), [count] "=&r" (count), [second] "+r" (second)
515af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [a] "r" (a), [rdft_w] "r" (rdft_w)
516af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : "memory"
517af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  );
518af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org}
519af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
520af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.orgstatic void cftmdl_128_mips(float* a) {
521af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14;
522af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  int tmp_a, count;
523af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  __asm __volatile (
524af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       push                                      \n\t"
525af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       noreorder                                 \n\t"
526af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[tmp_a],   %[a],         0               \n\t"
527af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],   $zero,        4               \n\t"
528af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org   "1:                                                    \n\t"
529af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],   %[count],     -1              \n\t"
530af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f0],      0(%[tmp_a])                   \n\t"
531af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f2],      32(%[tmp_a])                  \n\t"
532af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f4],      64(%[tmp_a])                  \n\t"
533af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f6],      96(%[tmp_a])                  \n\t"
534af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],      4(%[tmp_a])                   \n\t"
535af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],      36(%[tmp_a])                  \n\t"
536af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],      68(%[tmp_a])                  \n\t"
537af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f7],      100(%[tmp_a])                 \n\t"
538af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],      %[f0],        %[f2]           \n\t"
539af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],      %[f0],        %[f2]           \n\t"
540af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],      %[f4],        %[f6]           \n\t"
541af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],      %[f4],        %[f6]           \n\t"
542af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],      %[f1],        %[f3]           \n\t"
543af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],      %[f1],        %[f3]           \n\t"
544af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],      %[f5],        %[f7]           \n\t"
545af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],      %[f5],        %[f7]           \n\t"
546af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f7],      %[f8],        %[f2]           \n\t"
547af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f8],      %[f8],        %[f2]           \n\t"
548af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],      %[f1],        %[f4]           \n\t"
549af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],      %[f1],        %[f4]           \n\t"
550af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f4],      %[f6],        %[f3]           \n\t"
551af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],      %[f6],        %[f3]           \n\t"
552af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f3],      %[f0],        %[f5]           \n\t"
553af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],      %[f0],        %[f5]           \n\t"
554af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],      0(%[tmp_a])                   \n\t"
555af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f8],      64(%[tmp_a])                  \n\t"
556af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],      36(%[tmp_a])                  \n\t"
557af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f1],      100(%[tmp_a])                 \n\t"
558af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f4],      4(%[tmp_a])                   \n\t"
559af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f6],      68(%[tmp_a])                  \n\t"
560af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],      32(%[tmp_a])                  \n\t"
561af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f0],      96(%[tmp_a])                  \n\t"
562af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "bgtz       %[count],   1b                            \n\t"
563af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    " addiu     %[tmp_a],   %[tmp_a],     8               \n\t"
564af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       pop                                       \n\t"
565af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [f0] "=&f" (f0), [f1] "=&f" (f1), [f2] "=&f" (f2), [f3] "=&f" (f3),
566af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f4] "=&f" (f4), [f5] "=&f" (f5), [f6] "=&f" (f6), [f7] "=&f" (f7),
567af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f8] "=&f" (f8), [tmp_a] "=&r" (tmp_a), [count] "=&r" (count)
568af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [a] "r" (a)
569af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : "memory"
570af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  );
571af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f9 = rdft_w[2];
572af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  __asm __volatile (
573af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       push                                      \n\t"
574af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       noreorder                                 \n\t"
575af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[tmp_a],   %[a],         128             \n\t"
576af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],   $zero,        4               \n\t"
577af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org   "1:                                                    \n\t"
578af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],   %[count],     -1              \n\t"
579af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f0],      0(%[tmp_a])                   \n\t"
580af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f2],      32(%[tmp_a])                  \n\t"
581af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],      68(%[tmp_a])                  \n\t"
582af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f7],      100(%[tmp_a])                 \n\t"
583af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],      4(%[tmp_a])                   \n\t"
584af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],      36(%[tmp_a])                  \n\t"
585af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f4],      64(%[tmp_a])                  \n\t"
586af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f6],      96(%[tmp_a])                  \n\t"
587af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f8],      %[f0],        %[f2]           \n\t"
588af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],      %[f0],        %[f2]           \n\t"
589af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f2],      %[f5],        %[f7]           \n\t"
590af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f5],      %[f5],        %[f7]           \n\t"
591af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f7],      %[f1],        %[f3]           \n\t"
592af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f1],      %[f1],        %[f3]           \n\t"
593af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f3],      %[f4],        %[f6]           \n\t"
594af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f4],      %[f4],        %[f6]           \n\t"
595af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],      %[f8],        %[f2]           \n\t"
596af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],      %[f8],        %[f2]           \n\t"
597af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],      %[f5],        %[f1]           \n\t"
598af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],      %[f5],        %[f1]           \n\t"
599af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f1],      %[f3],        %[f7]           \n\t"
600af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f3],      %[f3],        %[f7]           \n\t"
601af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f7],      %[f0],        %[f4]           \n\t"
602af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],      %[f0],        %[f4]           \n\t"
603af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],      %[f6],        %[f1]           \n\t"
604af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],      %[f6],        %[f1]           \n\t"
605af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],      %[f3],        %[f8]           \n\t"
606af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],      %[f3],        %[f8]           \n\t"
607af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f4],      %[f4],        %[f9]           \n\t"
608af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f6],      %[f6],        %[f9]           \n\t"
609af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f1],      %[f1],        %[f9]           \n\t"
610af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f3],      %[f3],        %[f9]           \n\t"
611af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],      0(%[tmp_a])                   \n\t"
612af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],      4(%[tmp_a])                   \n\t"
613af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f5],      64(%[tmp_a])                  \n\t"
614af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f0],      68(%[tmp_a])                  \n\t"
615af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f4],      32(%[tmp_a])                  \n\t"
616af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f6],      36(%[tmp_a])                  \n\t"
617af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f1],      96(%[tmp_a])                  \n\t"
618af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],      100(%[tmp_a])                 \n\t"
619af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "bgtz       %[count],   1b                            \n\t"
620af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    " addiu     %[tmp_a],   %[tmp_a],     8               \n\t"
621af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       pop                                       \n\t"
622af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [f0] "=&f" (f0), [f1] "=&f" (f1), [f2] "=&f" (f2), [f3] "=&f" (f3),
623af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f4] "=&f" (f4), [f5] "=&f" (f5), [f6] "=&f" (f6), [f7] "=&f" (f7),
624af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f8] "=&f" (f8), [tmp_a] "=&r" (tmp_a), [count] "=&r" (count)
625af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [a] "r" (a), [f9] "f" (f9)
626af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : "memory"
627af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  );
628af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f10 = rdft_w[3];
629af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f11 = rdft_w[4];
630af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f12 = rdft_w[5];
631af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f13 = rdft_wk3ri_first[2];
632af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f14 = rdft_wk3ri_first[3];
633af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
634af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  __asm __volatile (
635af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       push                                                    \n\t"
636af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       noreorder                                               \n\t"
637af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[tmp_a],     %[a],         256                         \n\t"
638af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],     $zero,        4                           \n\t"
639af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org   "1:                                                                  \n\t"
640af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],     %[count],     -1                          \n\t"
641af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f0],        0(%[tmp_a])                               \n\t"
642af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f2],        32(%[tmp_a])                              \n\t"
643af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f4],        64(%[tmp_a])                              \n\t"
644af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f6],        96(%[tmp_a])                              \n\t"
645af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],        4(%[tmp_a])                               \n\t"
646af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],        36(%[tmp_a])                              \n\t"
647af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],        68(%[tmp_a])                              \n\t"
648af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f7],        100(%[tmp_a])                             \n\t"
649af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],        %[f0],        %[f2]                       \n\t"
650af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],        %[f0],        %[f2]                       \n\t"
651af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],        %[f4],        %[f6]                       \n\t"
652af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],        %[f4],        %[f6]                       \n\t"
653af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],        %[f1],        %[f3]                       \n\t"
654af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],        %[f1],        %[f3]                       \n\t"
655af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],        %[f5],        %[f7]                       \n\t"
656af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],        %[f5],        %[f7]                       \n\t"
657af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f7],        %[f8],        %[f2]                       \n\t"
658af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],        %[f8],        %[f2]                       \n\t"
659af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],        %[f1],        %[f4]                       \n\t"
660af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],        %[f1],        %[f4]                       \n\t"
661af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],        %[f6],        %[f3]                       \n\t"
662af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],        %[f6],        %[f3]                       \n\t"
663af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f3],        %[f0],        %[f5]                       \n\t"
664af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],        %[f0],        %[f5]                       \n\t"
665af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f8],        0(%[tmp_a])                               \n\t"
666af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f6],        4(%[tmp_a])                               \n\t"
667af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f5],        %[f9],        %[f7]                       \n\t"
668af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if defined(MIPS32_R2_LE)
669af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f7],        %[f10],       %[f7]                       \n\t"
670af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f8],        %[f11],       %[f3]                       \n\t"
671af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f3],        %[f12],       %[f3]                       \n\t"
672af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f6],        %[f13],       %[f0]                       \n\t"
673af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f0],        %[f14],       %[f0]                       \n\t"
674af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s    %[f5],        %[f5],        %[f10],       %[f4]         \n\t"
675af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f7],        %[f7],        %[f9],        %[f4]         \n\t"
676af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s    %[f8],        %[f8],        %[f12],       %[f2]         \n\t"
677af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f3],        %[f3],        %[f11],       %[f2]         \n\t"
678af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s    %[f6],        %[f6],        %[f14],       %[f1]         \n\t"
679af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f0],        %[f0],        %[f13],       %[f1]         \n\t"
680af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f5],        64(%[tmp_a])                              \n\t"
681af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],        68(%[tmp_a])                              \n\t"
682af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
683af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f8],        %[f10],       %[f4]                       \n\t"
684af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f4],        %[f9],        %[f4]                       \n\t"
685af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f7],        %[f10],       %[f7]                       \n\t"
686af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f6],        %[f11],       %[f3]                       \n\t"
687af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f3],        %[f12],       %[f3]                       \n\t"
688af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],        %[f5],        %[f8]                       \n\t"
689af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f8],        %[f12],       %[f2]                       \n\t"
690af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f2],        %[f11],       %[f2]                       \n\t"
691af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f7],        %[f4],        %[f7]                       \n\t"
692af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f4],        %[f13],       %[f0]                       \n\t"
693af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f0],        %[f14],       %[f0]                       \n\t"
694af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f8],        %[f6],        %[f8]                       \n\t"
695af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f6],        %[f14],       %[f1]                       \n\t"
696af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f1],        %[f13],       %[f1]                       \n\t"
697af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],        %[f2],        %[f3]                       \n\t"
698af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f5],        64(%[tmp_a])                              \n\t"
699af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],        68(%[tmp_a])                              \n\t"
700af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],        %[f4],        %[f6]                       \n\t"
701af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],        %[f1],        %[f0]                       \n\t"
702af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
703af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f8],        32(%[tmp_a])                              \n\t"
704af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],        36(%[tmp_a])                              \n\t"
705af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f6],        96(%[tmp_a])                              \n\t"
706af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f0],        100(%[tmp_a])                             \n\t"
707af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "bgtz       %[count],     1b                                        \n\t"
708af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    " addiu     %[tmp_a],     %[tmp_a],     8                           \n\t"
709af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       pop                                                     \n\t"
710af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [f0] "=&f" (f0), [f1] "=&f" (f1), [f2] "=&f" (f2), [f3] "=&f" (f3),
711af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f4] "=&f" (f4), [f5] "=&f" (f5), [f6] "=&f" (f6), [f7] "=&f" (f7),
712af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f8] "=&f" (f8), [tmp_a] "=&r" (tmp_a), [count] "=&r" (count)
713af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [a] "r" (a),  [f9] "f" (f9), [f10] "f" (f10), [f11] "f" (f11),
714af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f12] "f" (f12), [f13] "f" (f13), [f14] "f" (f14)
715af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : "memory"
716af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  );
717af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f11 = rdft_w[6];
718af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f12 = rdft_w[7];
719af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f13 = rdft_wk3ri_second[2];
720af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  f14 = rdft_wk3ri_second[3];
721af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  __asm __volatile (
722af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       push                                                       \n\t"
723af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       noreorder                                                  \n\t"
724af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[tmp_a],       %[a],           384                        \n\t"
725af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],       $zero,          4                          \n\t"
726af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org   "1:                                                                     \n\t"
727af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],       %[count],       -1                         \n\t"
728af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f0],          0(%[tmp_a])                                \n\t"
729af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],          4(%[tmp_a])                                \n\t"
730af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f2],          32(%[tmp_a])                               \n\t"
731af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],          36(%[tmp_a])                               \n\t"
732af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f4],          64(%[tmp_a])                               \n\t"
733af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],          68(%[tmp_a])                               \n\t"
734af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f6],          96(%[tmp_a])                               \n\t"
735af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f7],          100(%[tmp_a])                              \n\t"
736af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],          %[f0],          %[f2]                      \n\t"
737af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],          %[f0],          %[f2]                      \n\t"
738af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],          %[f4],          %[f6]                      \n\t"
739af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],          %[f4],          %[f6]                      \n\t"
740af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],          %[f1],          %[f3]                      \n\t"
741af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],          %[f1],          %[f3]                      \n\t"
742af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],          %[f5],          %[f7]                      \n\t"
743af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],          %[f5],          %[f7]                      \n\t"
744af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f7],          %[f2],          %[f8]                      \n\t"
745af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],          %[f2],          %[f8]                      \n\t"
746af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],          %[f1],          %[f4]                      \n\t"
747af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],          %[f1],          %[f4]                      \n\t"
748af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],          %[f3],          %[f6]                      \n\t"
749af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],          %[f3],          %[f6]                      \n\t"
750af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],          %[f0],          %[f5]                      \n\t"
751af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],          %[f0],          %[f5]                      \n\t"
752af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],          0(%[tmp_a])                                \n\t"
753af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],          4(%[tmp_a])                                \n\t"
754af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f5],          %[f10],         %[f7]                      \n\t"
755af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if defined(MIPS32_R2_LE)
756af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f7],          %[f9],          %[f7]                      \n\t"
757af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f2],          %[f12],         %[f8]                      \n\t"
758af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f8],          %[f11],         %[f8]                      \n\t"
759af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f3],          %[f14],         %[f1]                      \n\t"
760af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f1],          %[f13],         %[f1]                      \n\t"
761af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f5],          %[f5],          %[f9],       %[f4]         \n\t"
762af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "msub.s     %[f7],          %[f7],          %[f10],      %[f4]         \n\t"
763af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "msub.s     %[f2],          %[f2],          %[f11],      %[f6]         \n\t"
764af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f8],          %[f8],          %[f12],      %[f6]         \n\t"
765af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "msub.s     %[f3],          %[f3],          %[f13],      %[f0]         \n\t"
766af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s     %[f1],          %[f1],          %[f14],      %[f0]         \n\t"
767af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f5],          64(%[tmp_a])                               \n\t"
768af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],          68(%[tmp_a])                               \n\t"
769af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
770af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f2],          %[f9],          %[f4]                      \n\t"
771af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f4],          %[f10],         %[f4]                      \n\t"
772af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f7],          %[f9],          %[f7]                      \n\t"
773af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f3],          %[f11],         %[f6]                      \n\t"
774af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f6],          %[f12],         %[f6]                      \n\t"
775af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f5],          %[f5],          %[f2]                      \n\t"
776af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f7],          %[f4],          %[f7]                      \n\t"
777af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f2],          %[f12],         %[f8]                      \n\t"
778af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f8],          %[f11],         %[f8]                      \n\t"
779af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f4],          %[f14],         %[f1]                      \n\t"
780af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f1],          %[f13],         %[f1]                      \n\t"
781af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f2],          %[f3],          %[f2]                      \n\t"
782af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f3],          %[f13],         %[f0]                      \n\t"
783af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s      %[f0],          %[f14],         %[f0]                      \n\t"
784af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],          %[f8],          %[f6]                      \n\t"
785af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f5],          64(%[tmp_a])                               \n\t"
786af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],          68(%[tmp_a])                               \n\t"
787af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f3],          %[f3],          %[f4]                      \n\t"
788af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f1],          %[f1],          %[f0]                      \n\t"
789af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
790af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],          32(%[tmp_a])                               \n\t"
791af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f8],          36(%[tmp_a])                               \n\t"
792af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],          96(%[tmp_a])                               \n\t"
793af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f1],          100(%[tmp_a])                              \n\t"
794af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "bgtz       %[count],       1b                                         \n\t"
795af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    " addiu     %[tmp_a],       %[tmp_a],       8                          \n\t"
796af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       pop                                                        \n\t"
797af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [f0] "=&f" (f0), [f1] "=&f" (f1), [f2] "=&f" (f2), [f3] "=&f" (f3),
798af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f4] "=&f" (f4), [f5] "=&f" (f5), [f6] "=&f" (f6), [f7] "=&f" (f7),
799af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f8] "=&f" (f8), [tmp_a] "=&r" (tmp_a), [count] "=&r" (count)
800af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [a] "r" (a), [f9] "f" (f9), [f10] "f" (f10), [f11] "f" (f11),
801af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f12] "f" (f12), [f13] "f" (f13), [f14] "f" (f14)
802af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : "memory"
803af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  );
804af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org}
805af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
806af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.orgstatic void cftfsub_128_mips(float* a) {
807af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float f0, f1, f2, f3, f4, f5, f6, f7, f8;
808af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  int tmp_a, count;
809af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
810af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  cft1st_128(a);
811af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  cftmdl_128(a);
812af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
813af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  __asm __volatile (
814af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    ".set       push                                      \n\t"
815af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    ".set       noreorder                                 \n\t"
816af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    "addiu      %[tmp_a],       %[a],         0           \n\t"
817af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    "addiu      %[count],       $zero,        16          \n\t"
818af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org   "1:                                                    \n\t"
819af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    "addiu      %[count],       %[count],     -1          \n\t"
820af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    "lwc1       %[f0],          0(%[tmp_a])               \n\t"
821af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    "lwc1       %[f2],          128(%[tmp_a])             \n\t"
822af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    "lwc1       %[f4],          256(%[tmp_a])             \n\t"
823af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    "lwc1       %[f6],          384(%[tmp_a])             \n\t"
824af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],          4(%[tmp_a])               \n\t"
825af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],          132(%[tmp_a])             \n\t"
826af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],          260(%[tmp_a])             \n\t"
827af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    "lwc1       %[f7],          388(%[tmp_a])             \n\t"
828af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],          %[f0],        %[f2]       \n\t"
829af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],          %[f0],        %[f2]       \n\t"
830af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],          %[f4],        %[f6]       \n\t"
831af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],          %[f4],        %[f6]       \n\t"
832af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],          %[f1],        %[f3]       \n\t"
833af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],          %[f1],        %[f3]       \n\t"
834af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],          %[f5],        %[f7]       \n\t"
835af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],          %[f5],        %[f7]       \n\t"
836af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f7],          %[f8],        %[f2]       \n\t"
837af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f8],          %[f8],        %[f2]       \n\t"
838af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],          %[f1],        %[f4]       \n\t"
839af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],          %[f1],        %[f4]       \n\t"
840af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f4],          %[f6],        %[f3]       \n\t"
841af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],          %[f6],        %[f3]       \n\t"
842af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f3],          %[f0],        %[f5]       \n\t"
843af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],          %[f0],        %[f5]       \n\t"
844af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],          0(%[tmp_a])               \n\t"
845af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f8],          256(%[tmp_a])             \n\t"
846af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],          132(%[tmp_a])             \n\t"
847af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f1],          388(%[tmp_a])             \n\t"
848af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f4],          4(%[tmp_a])               \n\t"
849af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f6],          260(%[tmp_a])             \n\t"
850af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],          128(%[tmp_a])             \n\t"
851af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f0],          384(%[tmp_a])             \n\t"
852af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    "bgtz       %[count],       1b                        \n\t"
853af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    " addiu     %[tmp_a],       %[tmp_a],   8             \n\t"
854af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    ".set       pop                                       \n\t"
855af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    : [f0] "=&f" (f0), [f1] "=&f" (f1), [f2] "=&f" (f2), [f3] "=&f" (f3),
856af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org      [f4] "=&f" (f4), [f5] "=&f" (f5), [f6] "=&f" (f6), [f7] "=&f" (f7),
857af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f8] "=&f" (f8), [tmp_a] "=&r" (tmp_a),
858af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org      [count] "=&r" (count)
859af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    : [a] "r" (a)
860af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org    : "memory"
861af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  );
862af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org}
863af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org
864af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.orgstatic void cftbsub_128_mips(float* a) {
865af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float f0, f1, f2, f3, f4, f5, f6, f7, f8;
866af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  int tmp_a, count;
867af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
868af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  cft1st_128(a);
869af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  cftmdl_128(a);
870af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
871af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  __asm __volatile (
872af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       push                                        \n\t"
873af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       noreorder                                   \n\t"
874af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[tmp_a],   %[a],           0               \n\t"
875af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],   $zero,          16              \n\t"
876af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org   "1:                                                      \n\t"
877af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu      %[count],   %[count],       -1              \n\t"
878af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f0],      0(%[tmp_a])                     \n\t"
879af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f2],      128(%[tmp_a])                   \n\t"
880af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f4],      256(%[tmp_a])                   \n\t"
881af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f6],      384(%[tmp_a])                   \n\t"
882af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f1],      4(%[tmp_a])                     \n\t"
883af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f3],      132(%[tmp_a])                   \n\t"
884af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f5],      260(%[tmp_a])                   \n\t"
885af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1       %[f7],      388(%[tmp_a])                   \n\t"
886af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f8],      %[f0],          %[f2]           \n\t"
887af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f0],      %[f0],          %[f2]           \n\t"
888af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f2],      %[f4],          %[f6]           \n\t"
889af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f4],      %[f4],          %[f6]           \n\t"
890af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f6],      %[f1],          %[f3]           \n\t"
891af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f1],      %[f3],          %[f1]           \n\t"
892af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f3],      %[f5],          %[f7]           \n\t"
893af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f5],      %[f5],          %[f7]           \n\t"
894af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f7],      %[f8],          %[f2]           \n\t"
895af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f8],      %[f8],          %[f2]           \n\t"
896af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f2],      %[f1],          %[f4]           \n\t"
897af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f1],      %[f1],          %[f4]           \n\t"
898af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f4],      %[f3],          %[f6]           \n\t"
899af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f6],      %[f3],          %[f6]           \n\t"
900af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s      %[f3],      %[f0],          %[f5]           \n\t"
901af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s      %[f0],      %[f0],          %[f5]           \n\t"
902af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "neg.s      %[f4],      %[f4]                           \n\t"
903af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f7],      0(%[tmp_a])                     \n\t"
904af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f8],      256(%[tmp_a])                   \n\t"
905af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f2],      132(%[tmp_a])                   \n\t"
906af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f1],      388(%[tmp_a])                   \n\t"
907af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f6],      260(%[tmp_a])                   \n\t"
908af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f3],      128(%[tmp_a])                   \n\t"
909af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f0],      384(%[tmp_a])                   \n\t"
910af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1       %[f4],       4(%[tmp_a])                     \n\t"
911af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "bgtz       %[count],   1b                              \n\t"
912af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    " addiu     %[tmp_a],   %[tmp_a],       8               \n\t"
913af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set       pop                                         \n\t"
914af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [f0] "=&f" (f0), [f1] "=&f" (f1), [f2] "=&f" (f2), [f3] "=&f" (f3),
915af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f4] "=&f" (f4), [f5] "=&f" (f5), [f6] "=&f" (f6), [f7] "=&f" (f7),
916af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f8] "=&f" (f8), [tmp_a] "=&r" (tmp_a), [count] "=&r" (count)
917af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [a] "r" (a)
918af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : "memory"
919af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  );
920af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org}
921af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
922af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.orgstatic void rftfsub_128_mips(float* a) {
923af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  const float* c = rdft_w + 32;
924af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  const float f0 = 0.5f;
925af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float* a1 = &a[2];
926af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float* a2 = &a[126];
927af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  const float* c1 = &c[1];
928af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  const float* c2 = &c[31];
929af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float f1, f2, f3 ,f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15;
930af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  int count;
931af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
932af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  __asm __volatile (
933af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set      push                                             \n\t"
934af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set      noreorder                                        \n\t"
935af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f6],       0(%[c2])                            \n\t"
936af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f1],       0(%[a1])                            \n\t"
937af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f2],       0(%[a2])                            \n\t"
938af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f3],       4(%[a1])                            \n\t"
939af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f4],       4(%[a2])                            \n\t"
940af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f5],       0(%[c1])                            \n\t"
941af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f6],       %[f0],        %[f6]                 \n\t"
942af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f7],       %[f1],        %[f2]                 \n\t"
943af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f8],       %[f3],        %[f4]                 \n\t"
944af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[count],    $zero,        15                    \n\t"
945af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f9],       %[f6],        %[f7]                 \n\t"
946af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f6],       %[f6],        %[f8]                 \n\t"
947af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if !defined(MIPS32_R2_LE)
948af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f8],       %[f5],        %[f8]                 \n\t"
949af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f5],       %[f5],        %[f7]                 \n\t"
950af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f9],       %[f9],        %[f8]                 \n\t"
951af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f6],       %[f6],        %[f5]                 \n\t"
952af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
953af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s   %[f9],       %[f9],        %[f5],      %[f8]     \n\t"
954af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s    %[f6],       %[f6],        %[f5],      %[f7]     \n\t"
955af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
956af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f1],       %[f1],        %[f9]                 \n\t"
957af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f2],       %[f2],        %[f9]                 \n\t"
958af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f3],       %[f3],        %[f6]                 \n\t"
959af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f4],       %[f4],        %[f6]                 \n\t"
960af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f1],       0(%[a1])                            \n\t"
961af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f2],       0(%[a2])                            \n\t"
962af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f3],       4(%[a1])                            \n\t"
963af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f4],       4(%[a2])                            \n\t"
964af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[a1],       %[a1],        8                     \n\t"
965af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[a2],       %[a2],        -8                    \n\t"
966af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[c1],       %[c1],        4                     \n\t"
967af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[c2],       %[c2],        -4                    \n\t"
968af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org   "1:                                                          \n\t"
969af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f6],       0(%[c2])                            \n\t"
970af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f1],       0(%[a1])                            \n\t"
971af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f2],       0(%[a2])                            \n\t"
972af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f3],       4(%[a1])                            \n\t"
973af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f4],       4(%[a2])                            \n\t"
974af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f5],       0(%[c1])                            \n\t"
975af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f6],       %[f0],        %[f6]                 \n\t"
976af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f7],       %[f1],        %[f2]                 \n\t"
977af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f8],       %[f3],        %[f4]                 \n\t"
978af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f10],      -4(%[c2])                           \n\t"
979af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f11],      8(%[a1])                            \n\t"
980af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f12],      -8(%[a2])                           \n\t"
981af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f9],       %[f6],        %[f7]                 \n\t"
982af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f6],       %[f6],        %[f8]                 \n\t"
983af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if !defined(MIPS32_R2_LE)
984af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f8],       %[f5],        %[f8]                 \n\t"
985af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f5],       %[f5],        %[f7]                 \n\t"
986af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f13],      12(%[a1])                           \n\t"
987af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f14],      -4(%[a2])                           \n\t"
988af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f15],      4(%[c1])                            \n\t"
989af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f9],       %[f9],        %[f8]                 \n\t"
990af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f6],       %[f6],        %[f5]                 \n\t"
991af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
992af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f13],      12(%[a1])                           \n\t"
993af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f14],      -4(%[a2])                           \n\t"
994af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f15],      4(%[c1])                            \n\t"
995af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s   %[f9],       %[f9],        %[f5],      %[f8]     \n\t"
996af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s    %[f6],       %[f6],        %[f5],      %[f7]     \n\t"
997af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
998af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f10],      %[f0],        %[f10]                \n\t"
999af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f5],       %[f11],       %[f12]                \n\t"
1000af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f7],       %[f13],       %[f14]                \n\t"
1001af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f1],       %[f1],        %[f9]                 \n\t"
1002af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f2],       %[f2],        %[f9]                 \n\t"
1003af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f3],       %[f3],        %[f6]                 \n\t"
1004af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f8],       %[f10],       %[f5]                 \n\t"
1005af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f10],      %[f10],       %[f7]                 \n\t"
1006af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if !defined(MIPS32_R2_LE)
1007af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f9],       %[f15],       %[f7]                 \n\t"
1008af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f15],      %[f15],       %[f5]                 \n\t"
1009af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f4],       %[f4],        %[f6]                 \n\t"
1010af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f1],       0(%[a1])                            \n\t"
1011af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f2],       0(%[a2])                            \n\t"
1012af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f8],       %[f8],        %[f9]                 \n\t"
1013af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f10],      %[f10],       %[f15]                \n\t"
1014af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
1015af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f1],       0(%[a1])                            \n\t"
1016af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f2],       0(%[a2])                            \n\t"
1017af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f4],       %[f4],        %[f6]                 \n\t"
1018af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s   %[f8],       %[f8],        %[f15],     %[f7]     \n\t"
1019af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s    %[f10],      %[f10],       %[f15],     %[f5]     \n\t"
1020af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
1021af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f3],       4(%[a1])                            \n\t"
1022af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f4],       4(%[a2])                            \n\t"
1023af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f11],      %[f11],       %[f8]                 \n\t"
1024af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f12],      %[f12],       %[f8]                 \n\t"
1025af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f13],      %[f13],       %[f10]                \n\t"
1026af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f14],      %[f14],       %[f10]                \n\t"
1027af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[c2],       %[c2],        -8                    \n\t"
1028af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[c1],       %[c1],        8                     \n\t"
1029af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f11],      8(%[a1])                            \n\t"
1030af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f12],      -8(%[a2])                           \n\t"
1031af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f13],      12(%[a1])                           \n\t"
1032af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f14],      -4(%[a2])                           \n\t"
1033af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[a1],       %[a1],        16                    \n\t"
1034af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[count],    %[count],     -1                    \n\t"
1035af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "bgtz      %[count],    1b                                  \n\t"
1036af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    " addiu    %[a2],       %[a2],        -16                   \n\t"
1037af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set      pop                                              \n\t"
1038af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [a1] "+r" (a1), [a2] "+r" (a2), [c1] "+r" (c1), [c2] "+r" (c2),
1039af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f1] "=&f" (f1), [f2] "=&f" (f2), [f3] "=&f" (f3), [f4] "=&f" (f4),
1040af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f5] "=&f" (f5), [f6] "=&f" (f6), [f7] "=&f" (f7), [f8] "=&f" (f8),
1041af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f9] "=&f" (f9), [f10] "=&f" (f10), [f11] "=&f" (f11), [f12] "=&f" (f12),
1042af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f13] "=&f" (f13), [f14] "=&f" (f14), [f15] "=&f" (f15),
1043af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [count] "=&r" (count)
1044af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [f0] "f" (f0)
1045af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : "memory"
1046af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  );
1047af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org}
1048af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
1049af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.orgstatic void rftbsub_128_mips(float* a) {
1050af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  const float *c = rdft_w + 32;
1051af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  const float f0 = 0.5f;
1052af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float* a1 = &a[2];
1053af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float* a2 = &a[126];
1054af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  const float* c1 = &c[1];
1055af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  const float* c2 = &c[31];
1056af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  float f1, f2, f3 ,f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15;
1057af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  int count;
1058af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
1059af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  a[1] = -a[1];
1060af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  a[65] = -a[65];
1061af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
1062af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  __asm __volatile (
1063af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set      push                                             \n\t"
1064af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set      noreorder                                        \n\t"
1065af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f6],       0(%[c2])                            \n\t"
1066af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f1],       0(%[a1])                            \n\t"
1067af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f2],       0(%[a2])                            \n\t"
1068af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f3],       4(%[a1])                            \n\t"
1069af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f4],       4(%[a2])                            \n\t"
1070af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f5],       0(%[c1])                            \n\t"
1071af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f6],       %[f0],        %[f6]                 \n\t"
1072af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f7],       %[f1],        %[f2]                 \n\t"
1073af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f8],       %[f3],        %[f4]                 \n\t"
1074af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[count],    $zero,        15                    \n\t"
1075af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f9],       %[f6],        %[f7]                 \n\t"
1076af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f6],       %[f6],        %[f8]                 \n\t"
1077af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if !defined(MIPS32_R2_LE)
1078af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f8],       %[f5],        %[f8]                 \n\t"
1079af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f5],       %[f5],        %[f7]                 \n\t"
1080af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f9],       %[f9],        %[f8]                 \n\t"
1081af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f6],       %[f6],        %[f5]                 \n\t"
1082af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
1083af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s    %[f9],       %[f9],        %[f5],      %[f8]     \n\t"
1084af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s   %[f6],       %[f6],        %[f5],      %[f7]     \n\t"
1085af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
1086af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f1],       %[f1],        %[f9]                 \n\t"
1087af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f2],       %[f2],        %[f9]                 \n\t"
1088af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f3],       %[f6],        %[f3]                 \n\t"
1089af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f4],       %[f6],        %[f4]                 \n\t"
1090af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f1],       0(%[a1])                            \n\t"
1091af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f2],       0(%[a2])                            \n\t"
1092af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f3],       4(%[a1])                            \n\t"
1093af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f4],       4(%[a2])                            \n\t"
1094af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[a1],       %[a1],        8                     \n\t"
1095af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[a2],       %[a2],        -8                    \n\t"
1096af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[c1],       %[c1],        4                     \n\t"
1097af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[c2],       %[c2],        -4                    \n\t"
1098af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org   "1:                                                          \n\t"
1099af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f6],       0(%[c2])                            \n\t"
1100af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f1],       0(%[a1])                            \n\t"
1101af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f2],       0(%[a2])                            \n\t"
1102af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f3],       4(%[a1])                            \n\t"
1103af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f4],       4(%[a2])                            \n\t"
1104af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f5],       0(%[c1])                            \n\t"
1105af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f6],       %[f0],        %[f6]                 \n\t"
1106af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f7],       %[f1],        %[f2]                 \n\t"
1107af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f8],       %[f3],        %[f4]                 \n\t"
1108af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f10],      -4(%[c2])                           \n\t"
1109af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f11],      8(%[a1])                            \n\t"
1110af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f12],      -8(%[a2])                           \n\t"
1111af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f9],       %[f6],        %[f7]                 \n\t"
1112af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f6],       %[f6],        %[f8]                 \n\t"
1113af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if !defined(MIPS32_R2_LE)
1114af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f8],       %[f5],        %[f8]                 \n\t"
1115af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f5],       %[f5],        %[f7]                 \n\t"
1116af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f13],      12(%[a1])                           \n\t"
1117af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f14],      -4(%[a2])                           \n\t"
1118af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f15],      4(%[c1])                            \n\t"
1119af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f9],       %[f9],        %[f8]                 \n\t"
1120af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f6],       %[f6],        %[f5]                 \n\t"
1121af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
1122af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f13],      12(%[a1])                           \n\t"
1123af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f14],      -4(%[a2])                           \n\t"
1124af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "lwc1      %[f15],      4(%[c1])                            \n\t"
1125af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s    %[f9],       %[f9],        %[f5],      %[f8]     \n\t"
1126af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s   %[f6],       %[f6],        %[f5],      %[f7]     \n\t"
1127af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
1128af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f10],      %[f0],        %[f10]                \n\t"
1129af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f5],       %[f11],       %[f12]                \n\t"
1130af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f7],       %[f13],       %[f14]                \n\t"
1131af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f1],       %[f1],        %[f9]                 \n\t"
1132af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f2],       %[f2],        %[f9]                 \n\t"
1133af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f3],       %[f6],        %[f3]                 \n\t"
1134af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f8],       %[f10],       %[f5]                 \n\t"
1135af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f10],      %[f10],       %[f7]                 \n\t"
1136af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#if !defined(MIPS32_R2_LE)
1137af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f9],       %[f15],       %[f7]                 \n\t"
1138af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "mul.s     %[f15],      %[f15],       %[f5]                 \n\t"
1139af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f4],       %[f6],        %[f4]                 \n\t"
1140af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f1],       0(%[a1])                            \n\t"
1141af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f2],       0(%[a2])                            \n\t"
1142af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f8],       %[f8],        %[f9]                 \n\t"
1143af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f10],      %[f10],       %[f15]                \n\t"
1144af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#else
1145af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f1],       0(%[a1])                            \n\t"
1146af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f2],       0(%[a2])                            \n\t"
1147af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f4],       %[f6],        %[f4]                 \n\t"
1148af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "madd.s    %[f8],       %[f8],        %[f15],     %[f7]     \n\t"
1149af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "nmsub.s   %[f10],      %[f10],       %[f15],     %[f5]     \n\t"
1150af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org#endif
1151af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f3],       4(%[a1])                            \n\t"
1152af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f4],       4(%[a2])                            \n\t"
1153af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f11],      %[f11],       %[f8]                 \n\t"
1154af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "add.s     %[f12],      %[f12],       %[f8]                 \n\t"
1155af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f13],      %[f10],       %[f13]                \n\t"
1156af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "sub.s     %[f14],      %[f10],       %[f14]                \n\t"
1157af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[c2],       %[c2],        -8                    \n\t"
1158af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[c1],       %[c1],        8                     \n\t"
1159af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f11],      8(%[a1])                            \n\t"
1160af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f12],      -8(%[a2])                           \n\t"
1161af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f13],      12(%[a1])                           \n\t"
1162af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "swc1      %[f14],      -4(%[a2])                           \n\t"
1163af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[a1],       %[a1],        16                    \n\t"
1164af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "addiu     %[count],    %[count],     -1                    \n\t"
1165af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    "bgtz      %[count],    1b                                  \n\t"
1166af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    " addiu    %[a2],       %[a2],        -16                   \n\t"
1167af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    ".set      pop                                              \n\t"
1168af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [a1] "+r" (a1), [a2] "+r" (a2), [c1] "+r" (c1), [c2] "+r" (c2),
1169af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f1] "=&f" (f1), [f2] "=&f" (f2), [f3] "=&f" (f3), [f4] "=&f" (f4),
1170af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f5] "=&f" (f5), [f6] "=&f" (f6), [f7] "=&f" (f7), [f8] "=&f" (f8),
1171af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f9] "=&f" (f9), [f10] "=&f" (f10), [f11] "=&f" (f11), [f12] "=&f" (f12),
1172af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [f13] "=&f" (f13), [f14] "=&f" (f14), [f15] "=&f" (f15),
1173af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org      [count] "=&r" (count)
1174af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : [f0] "f" (f0)
1175af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org    : "memory"
1176af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  );
1177af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org}
1178af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org
1179af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.orgvoid aec_rdft_init_mips(void) {
1180af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  cft1st_128 = cft1st_128_mips;
1181af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  cftmdl_128 = cftmdl_128_mips;
1182af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  rftfsub_128 = rftfsub_128_mips;
1183af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  rftbsub_128 = rftbsub_128_mips;
1184af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  cftfsub_128 = cftfsub_128_mips;
1185af33b90e1871cc0821f6d0a2c6cd251e51e366ceandrew@webrtc.org  cftbsub_128 = cftbsub_128_mips;
1186af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org  bitrv2_128 = bitrv2_128_mips;
1187af83c70310e2910838f4ea207d672d69488978bbandrew@webrtc.org}
1188