summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/AudioResampler.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2011-11-17 13:27:22 -0800
committerGlenn Kasten <gkasten@google.com>2011-11-17 13:27:22 -0800
commitc23e2f2464eb3748599d47af7d8986b856f3c179 (patch)
treee1d10d95ab838f97307feaf5a3a0f7f99526a80b /services/audioflinger/AudioResampler.cpp
parent1de4e2e1d7c22a31238e448200cbbe667cd5fa4c (diff)
downloadframeworks_av-c23e2f2464eb3748599d47af7d8986b856f3c179.zip
frameworks_av-c23e2f2464eb3748599d47af7d8986b856f3c179.tar.gz
frameworks_av-c23e2f2464eb3748599d47af7d8986b856f3c179.tar.bz2
Bug 5522189 re-enable ARM opts but disable inline
PIE did not work together with inlining. This change combines (almost all of) the performance benefits of ARM optimizations together with PIE. Change-Id: I4594d33ae5a0a7bac327ae08e30fb35343a06256
Diffstat (limited to 'services/audioflinger/AudioResampler.cpp')
-rw-r--r--services/audioflinger/AudioResampler.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/services/audioflinger/AudioResampler.cpp b/services/audioflinger/AudioResampler.cpp
index 906794b..e945ce0 100644
--- a/services/audioflinger/AudioResampler.cpp
+++ b/services/audioflinger/AudioResampler.cpp
@@ -33,7 +33,7 @@
namespace android {
#ifdef __ARM_HAVE_HALFWORD_MULTIPLY // optimized asm option
- //#define ASM_ARM_RESAMP1 // enable asm optimisation for ResamplerOrder1
+ #define ASM_ARM_RESAMP1 // enable asm optimisation for ResamplerOrder1
#endif // __ARM_HAVE_HALFWORD_MULTIPLY
// ----------------------------------------------------------------------------
@@ -390,6 +390,7 @@ resampleMono16_exit:
* phaseFraction : phase fraction for next interpolation
*
*******************************************************************/
+__attribute__((noinline))
void AudioResamplerOrder1::AsmMono16Loop(int16_t *in, int32_t* maxOutPt, int32_t maxInIdx,
size_t &outputIndex, int32_t* out, size_t &inputIndex, int32_t vl, int32_t vr,
uint32_t &phaseFraction, uint32_t phaseIncrement)
@@ -500,6 +501,7 @@ void AudioResamplerOrder1::AsmMono16Loop(int16_t *in, int32_t* maxOutPt, int32_t
* phaseFraction : phase fraction for next interpolation
*
*******************************************************************/
+__attribute__((noinline))
void AudioResamplerOrder1::AsmStereo16Loop(int16_t *in, int32_t* maxOutPt, int32_t maxInIdx,
size_t &outputIndex, int32_t* out, size_t &inputIndex, int32_t vl, int32_t vr,
uint32_t &phaseFraction, uint32_t phaseIncrement)
@@ -600,6 +602,5 @@ void AudioResamplerOrder1::AsmStereo16Loop(int16_t *in, int32_t* maxOutPt, int32
// ----------------------------------------------------------------------------
-}
-; // namespace android
+} // namespace android