Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6fe5bd88 authored by Jason Simmons's avatar Jason Simmons Committed by Mike Lockwood
Browse files

Do not inline the audio resampler assembly functions

The assembly expects arguments to live at fixed offsets from the stack pointer
which are invalid if the code is inlined.

Change-Id: Ie93e93c5c69774079112345754fbc85896fc2f64
parent 07436fc0
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -59,10 +59,12 @@ private:
#ifdef ASM_ARM_RESAMP1  // asm optimisation for ResamplerOrder1
    void 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);
            uint32_t &phaseFraction, uint32_t phaseIncrement)
        __attribute__((noinline));
    void 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);
            uint32_t &phaseFraction, uint32_t phaseIncrement)
        __attribute__((noinline));
#endif  // ASM_ARM_RESAMP1

    static inline int32_t Interp(int32_t x0, int32_t x1, uint32_t f) {