Replace asm NEON function by intrinsics implementation on ARMv7

Passed building isac_neon and modules_unittests on Android ARMv7.
Passed modules_unittests with following filters:
  --gtest_filter=FiltersTest*
  --gtest_filter=LpcMaskingModelTest*
  --gtest_filter=TransformTest*
  --gtest_filter=FilterBanksTest*

WebRtcIsacfix_CalculateResidualEnergyNeon is removed, refer more in
Issue 4224.

The old review url is at: https://webrtc-codereview.appspot.com/37259004/

BUG=4002
R=andrew@webrtc.org, jridges@masque.com, kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48319005

Patch from Zhongwei Yao <zhongwei.yao@arm.com>.

Change-Id: I4c16e15930f1b3449d67b67bf023fac28121dff8
Cr-Commit-Position: refs/heads/master@{#9140}
This commit is contained in:
Zhongwei Yao
2015-05-06 16:39:17 +08:00
committed by Zhongwei Yao
parent 507a550af8
commit f242e665b4
11 changed files with 14 additions and 1443 deletions

View File

@ -591,17 +591,14 @@ source_set("isacfix") {
if (rtc_build_armv7_neon || current_cpu == "arm64") {
source_set("isac_neon") {
sources = [ "codecs/isac/fix/source/entropy_coding_neon.c" ]
sources = [
"codecs/isac/fix/source/entropy_coding_neon.c",
"codecs/isac/fix/source/filters_neon.c",
"codecs/isac/fix/source/lattice_neon.c",
"codecs/isac/fix/source/transform_neon.c",
]
if (rtc_build_armv7_neon) {
sources += [
"codecs/isac/fix/source/filterbanks_neon.S",
"codecs/isac/fix/source/filters_neon.S",
"codecs/isac/fix/source/lattice_neon.S",
"codecs/isac/fix/source/lpc_masking_model_neon.S",
"codecs/isac/fix/source/transform_neon.S",
]
# Enable compilation for the ARM v7 Neon instruction set. This is needed
# since //build/config/arm.gni only enables Neon for iOS, not Android.
# This provides the same functionality as webrtc/build/arm_neon.gypi.
@ -614,18 +611,11 @@ if (rtc_build_armv7_neon || current_cpu == "arm64") {
]
}
if (current_cpu == "arm64") {
sources += [
"codecs/isac/fix/source/filters_neon.c",
"codecs/isac/fix/source/lattice_neon.c",
"codecs/isac/fix/source/transform_neon.c",
]
if (current_cpu != "arm64" || !is_clang) {
# Disable AllpassFilter2FixDec16Neon function due to a clang bug.
# Refer more details at:
# https://code.google.com/p/webrtc/issues/detail?id=4567
if (!is_clang) {
sources += [ "codecs/isac/fix/source/filterbanks_neon.c", ]
}
}
# Disable LTO in audio_processing_neon target due to compiler bug.