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