| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 635 ".set pop \n\t" | 635 ".set pop \n\t" |
| 636 : [f0] "=&f" (f0), [f1] "=&f" (f1), [f2] "=&f" (f2), | 636 : [f0] "=&f" (f0), [f1] "=&f" (f1), [f2] "=&f" (f2), |
| 637 [f3] "=&f" (f3), [f4] "=&f" (f4), [f5] "=&f" (f5), | 637 [f3] "=&f" (f3), [f4] "=&f" (f4), [f5] "=&f" (f5), |
| 638 [f6] "=&f" (f6), [f7] "=&f" (f7), [len] "=&r" (len), | 638 [f6] "=&f" (f6), [f7] "=&f" (f7), [len] "=&r" (len), |
| 639 [fft_tmp] "=&r" (fft_tmp), [aRe] "+r" (aRe), [aIm] "+r" (aIm) | 639 [fft_tmp] "=&r" (fft_tmp), [aRe] "+r" (aRe), [aIm] "+r" (aIm) |
| 640 : [fft] "r" (fft) | 640 : [fft] "r" (fft) |
| 641 : "memory"); | 641 : "memory"); |
| 642 } | 642 } |
| 643 } | 643 } |
| 644 | 644 |
| 645 void WebRtcAec_OverdriveAndSuppress_mips(AecCore* aec, | 645 void WebRtcAec_OverdriveAndSuppress_mips(float overdrive_scaling, |
| 646 float hNl[PART_LEN1], | 646 float hNl[PART_LEN1], |
| 647 const float hNlFb, | 647 const float hNlFb, |
| 648 float efw[2][PART_LEN1]) { | 648 float efw[2][PART_LEN1]) { |
| 649 int i; | 649 int i; |
| 650 const float one = 1.0; | 650 const float one = 1.0; |
| 651 float* p_hNl; | 651 float* p_hNl; |
| 652 float* p_efw0; | 652 float* p_efw0; |
| 653 float* p_efw1; | 653 float* p_efw1; |
| 654 const float* p_WebRtcAec_wC; | 654 const float* p_WebRtcAec_wC; |
| 655 float temp1, temp2, temp3, temp4; | 655 float temp1, temp2, temp3, temp4; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 678 #endif // #if !defined(MIPS32_R2_LE) | 678 #endif // #if !defined(MIPS32_R2_LE) |
| 679 "swc1 %[temp1], 0(%[p_hNl]) \n\t" | 679 "swc1 %[temp1], 0(%[p_hNl]) \n\t" |
| 680 "1: \n\t" | 680 "1: \n\t" |
| 681 "addiu %[p_wC], %[p_wC], 4 \n\t" | 681 "addiu %[p_wC], %[p_wC], 4 \n\t" |
| 682 ".set pop \n\t" | 682 ".set pop \n\t" |
| 683 : [temp1] "=&f" (temp1), [temp2] "=&f" (temp2), [temp3] "=&f" (temp3), | 683 : [temp1] "=&f" (temp1), [temp2] "=&f" (temp2), [temp3] "=&f" (temp3), |
| 684 [temp4] "=&f" (temp4), [p_wC] "+r" (p_WebRtcAec_wC) | 684 [temp4] "=&f" (temp4), [p_wC] "+r" (p_WebRtcAec_wC) |
| 685 : [hNlFb] "f" (hNlFb), [one] "f" (one), [p_hNl] "r" (p_hNl) | 685 : [hNlFb] "f" (hNlFb), [one] "f" (one), [p_hNl] "r" (p_hNl) |
| 686 : "memory"); | 686 : "memory"); |
| 687 | 687 |
| 688 hNl[i] = powf(hNl[i], aec->overDriveSm * WebRtcAec_overDriveCurve[i]); | 688 hNl[i] = powf(hNl[i], overdrive_scaling * WebRtcAec_overDriveCurve[i]); |
| 689 | 689 |
| 690 __asm __volatile( | 690 __asm __volatile( |
| 691 "lwc1 %[temp1], 0(%[p_hNl]) \n\t" | 691 "lwc1 %[temp1], 0(%[p_hNl]) \n\t" |
| 692 "lwc1 %[temp3], 0(%[p_efw1]) \n\t" | 692 "lwc1 %[temp3], 0(%[p_efw1]) \n\t" |
| 693 "lwc1 %[temp2], 0(%[p_efw0]) \n\t" | 693 "lwc1 %[temp2], 0(%[p_efw0]) \n\t" |
| 694 "addiu %[p_hNl], %[p_hNl], 4 \n\t" | 694 "addiu %[p_hNl], %[p_hNl], 4 \n\t" |
| 695 "mul.s %[temp3], %[temp3], %[temp1] \n\t" | 695 "mul.s %[temp3], %[temp3], %[temp1] \n\t" |
| 696 "mul.s %[temp2], %[temp2], %[temp1] \n\t" | 696 "mul.s %[temp2], %[temp2], %[temp1] \n\t" |
| 697 "addiu %[p_efw0], %[p_efw0], 4 \n\t" | 697 "addiu %[p_efw0], %[p_efw0], 4 \n\t" |
| 698 "addiu %[p_efw1], %[p_efw1], 4 \n\t" | 698 "addiu %[p_efw1], %[p_efw1], 4 \n\t" |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 770 } | 770 } |
| 771 | 771 |
| 772 void WebRtcAec_InitAec_mips(void) { | 772 void WebRtcAec_InitAec_mips(void) { |
| 773 WebRtcAec_FilterFar = WebRtcAec_FilterFar_mips; | 773 WebRtcAec_FilterFar = WebRtcAec_FilterFar_mips; |
| 774 WebRtcAec_FilterAdaptation = WebRtcAec_FilterAdaptation_mips; | 774 WebRtcAec_FilterAdaptation = WebRtcAec_FilterAdaptation_mips; |
| 775 WebRtcAec_ScaleErrorSignal = WebRtcAec_ScaleErrorSignal_mips; | 775 WebRtcAec_ScaleErrorSignal = WebRtcAec_ScaleErrorSignal_mips; |
| 776 WebRtcAec_ComfortNoise = WebRtcAec_ComfortNoise_mips; | 776 WebRtcAec_ComfortNoise = WebRtcAec_ComfortNoise_mips; |
| 777 WebRtcAec_OverdriveAndSuppress = WebRtcAec_OverdriveAndSuppress_mips; | 777 WebRtcAec_OverdriveAndSuppress = WebRtcAec_OverdriveAndSuppress_mips; |
| 778 } | 778 } |
| 779 } // namespace webrtc | 779 } // namespace webrtc |
| OLD | NEW |