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
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 @@
* 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 @@
* 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 @@
// ----------------------------------------------------------------------------
-}
-; // namespace android
+} // namespace android