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