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

Commit ed3d89bb authored by Jason Simmons's avatar Jason Simmons
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: I423b3993ac9cd8d62129718d84fd23efbbac174a
parent 448adcb4
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) {