summaryrefslogtreecommitdiff
path: root/apps/codecs/lib/mdct.c
diff options
context:
space:
mode:
authorDave Hooper <dave@beermex.com>2010-02-20 11:00:16 +0000
committerDave Hooper <dave@beermex.com>2010-02-20 11:00:16 +0000
commit730a618fae0e04c536a1cb4d561887b450b7d068 (patch)
tree93f388a6cc8942037e55c2e68505a211f461b60a /apps/codecs/lib/mdct.c
parent9f63f4f2fcb5400a2c043504799228e79c424cab (diff)
downloadrockbox-730a618fae0e04c536a1cb4d561887b450b7d068.tar.gz
rockbox-730a618fae0e04c536a1cb4d561887b450b7d068.zip
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
Diffstat (limited to 'apps/codecs/lib/mdct.c')
-rw-r--r--apps/codecs/lib/mdct.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/apps/codecs/lib/mdct.c b/apps/codecs/lib/mdct.c
index 3c9fe41f20..aefd553f25 100644
--- a/apps/codecs/lib/mdct.c
+++ b/apps/codecs/lib/mdct.c
@@ -25,6 +25,10 @@
25#include "codeclib_misc.h" 25#include "codeclib_misc.h"
26#include "mdct_lookup.h" 26#include "mdct_lookup.h"
27 27
28#ifndef ICODE_ATTR_TREMOR_MDCT
29#define ICODE_ATTR_TREMOR_MDCT ICODE_ATTR
30#endif
31
28/** 32/**
29 * Compute the middle half of the inverse MDCT of size N = 2^nbits 33 * Compute the middle half of the inverse MDCT of size N = 2^nbits
30 * thus excluding the parts that can be derived by symmetry 34 * thus excluding the parts that can be derived by symmetry
@@ -34,6 +38,7 @@
34 * NOTE - CANNOT CURRENTLY OPERATE IN PLACE (input and output must 38 * NOTE - CANNOT CURRENTLY OPERATE IN PLACE (input and output must
35 * not overlap or intersect at all) 39 * not overlap or intersect at all)
36 */ 40 */
41void ff_imdct_half(unsigned int nbits, fixed32 *output, const fixed32 *input) ICODE_ATTR_TREMOR_MDCT;
37void ff_imdct_half(unsigned int nbits, fixed32 *output, const fixed32 *input) 42void ff_imdct_half(unsigned int nbits, fixed32 *output, const fixed32 *input)
38{ 43{
39 int n8, n4, n2, n, j; 44 int n8, n4, n2, n, j;
@@ -244,6 +249,7 @@ void ff_imdct_half(unsigned int nbits, fixed32 *output, const fixed32 *input)
244 * <-----------output-----------> 249 * <-----------output----------->
245 * 250 *
246 */ 251 */
252void ff_imdct_calc(unsigned int nbits, fixed32 *output, const fixed32 *input) ICODE_ATTR_TREMOR_MDCT;
247void ff_imdct_calc(unsigned int nbits, fixed32 *output, const fixed32 *input) 253void ff_imdct_calc(unsigned int nbits, fixed32 *output, const fixed32 *input)
248{ 254{
249 const int n = (1<<nbits); 255 const int n = (1<<nbits);