From 730a618fae0e04c536a1cb4d561887b450b7d068 Mon Sep 17 00:00:00 2001 From: Dave Hooper Date: Sat, 20 Feb 2010 11:00:16 +0000 Subject: Adding ICODE for imdct (and its constituent ifft bits) gives 0.5MHz boost on arm (ipod video) and about 5MHz boost on coldfire (H120) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24786 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/lib/fft-ffmpeg.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'apps/codecs/lib/fft-ffmpeg.c') diff --git a/apps/codecs/lib/fft-ffmpeg.c b/apps/codecs/lib/fft-ffmpeg.c index 23cf8b8..203a82e 100644 --- a/apps/codecs/lib/fft-ffmpeg.c +++ b/apps/codecs/lib/fft-ffmpeg.c @@ -57,6 +57,10 @@ /* asm-optimised functions and/or macros */ #include "fft-ffmpeg_arm.h" +#ifndef ICODE_ATTR_TREMOR_MDCT +#define ICODE_ATTR_TREMOR_MDCT ICODE_ATTR +#endif + #if 0 static int split_radix_permutation(int i, int n, int inverse) { @@ -268,7 +272,8 @@ static inline void TRANSFORM_ZERO(FFTComplex * z, unsigned int n) #endif /* z[0...8n-1], w[1...2n-1] */ -static void pass(FFTComplex *z_arg, unsigned int STEP_arg, unsigned int n_arg) +void pass(FFTComplex *z_arg, unsigned int STEP_arg, unsigned int n_arg) ICODE_ATTR_TREMOR_MDCT; +void pass(FFTComplex *z_arg, unsigned int STEP_arg, unsigned int n_arg) { register FFTComplex * z = z_arg; register unsigned int STEP = STEP_arg; @@ -314,7 +319,8 @@ static void pass(FFTComplex *z_arg, unsigned int STEP_arg, unsigned int n_arg) 8192/16 (from "ff_cos_16") is 512 bytes. i.e. for fft16, STEP = 8192/16 */ #define DECL_FFT(n,n2,n4)\ -static void fft##n(FFTComplex *z)\ +void fft##n(FFTComplex *z) ICODE_ATTR_TREMOR_MDCT;\ +void fft##n(FFTComplex *z)\ {\ fft##n2(z);\ fft##n4(z+n4*2);\ @@ -374,7 +380,8 @@ static void fft8_dispatch(FFTComplex *z) } #ifndef CONFIG_SMALL -static void fft16(FFTComplex *z) +void fft16(FFTComplex *z) ICODE_ATTR_TREMOR_MDCT; +void fft16(FFTComplex *z) { fft8(z); fft4(z+8); -- cgit v1.1