summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2011-02-05 20:22:12 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2011-02-05 20:22:12 +0000
commitae019419ffcc941a4933a484d19d8ffbc6072db8 (patch)
tree777e41ae134f0e75f9cf207492042ba28d016597
parent8033cb6250c403f4b7c189c4aa4c085df145a044 (diff)
downloadrockbox-ae019419ffcc941a4933a484d19d8ffbc6072db8.tar.gz
rockbox-ae019419ffcc941a4933a484d19d8ffbc6072db8.zip
Use the very large IRAM of S5L870x to speed up AAC-HE by ~1-5%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29212 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/libfaad/common.h12
-rw-r--r--apps/codecs/libfaad/sbr_dec.c4
2 files changed, 13 insertions, 3 deletions
diff --git a/apps/codecs/libfaad/common.h b/apps/codecs/libfaad/common.h
index 109dfe67cb..9179a6e21c 100644
--- a/apps/codecs/libfaad/common.h
+++ b/apps/codecs/libfaad/common.h
@@ -56,18 +56,28 @@ extern struct codec_api* ci;
56#define IBSS_ATTR_FAAD_LARGE_IRAM IBSS_ATTR 56#define IBSS_ATTR_FAAD_LARGE_IRAM IBSS_ATTR
57#define ICODE_ATTR_FAAD_LARGE_IRAM 57#define ICODE_ATTR_FAAD_LARGE_IRAM
58#define ICONST_ATTR_FAAD_LARGE_IRAM ICONST_ATTR 58#define ICONST_ATTR_FAAD_LARGE_IRAM ICONST_ATTR
59#define IBSS_ATTR_FAAD_XLARGE_IRAM
59 60
60#elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || defined(CPU_S5L870X) 61#elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024)
61/* Enough IRAM to move additional data and code to it. */ 62/* Enough IRAM to move additional data and code to it. */
62#define IBSS_ATTR_FAAD_LARGE_IRAM IBSS_ATTR 63#define IBSS_ATTR_FAAD_LARGE_IRAM IBSS_ATTR
63#define ICODE_ATTR_FAAD_LARGE_IRAM ICODE_ATTR 64#define ICODE_ATTR_FAAD_LARGE_IRAM ICODE_ATTR
64#define ICONST_ATTR_FAAD_LARGE_IRAM ICONST_ATTR 65#define ICONST_ATTR_FAAD_LARGE_IRAM ICONST_ATTR
66#define IBSS_ATTR_FAAD_XLARGE_IRAM
67
68#elif defined(CPU_S5L870X)
69/* Very large IRAM. Move even more data to it. */
70#define IBSS_ATTR_FAAD_LARGE_IRAM IBSS_ATTR
71#define ICODE_ATTR_FAAD_LARGE_IRAM ICODE_ATTR
72#define ICONST_ATTR_FAAD_LARGE_IRAM ICONST_ATTR
73#define IBSS_ATTR_FAAD_XLARGE_IRAM IBSS_ATTR
65 74
66#else 75#else
67/* Not enough IRAM available. */ 76/* Not enough IRAM available. */
68#define IBSS_ATTR_FAAD_LARGE_IRAM 77#define IBSS_ATTR_FAAD_LARGE_IRAM
69#define ICODE_ATTR_FAAD_LARGE_IRAM 78#define ICODE_ATTR_FAAD_LARGE_IRAM
70#define ICONST_ATTR_FAAD_LARGE_IRAM 79#define ICONST_ATTR_FAAD_LARGE_IRAM
80#define IBSS_ATTR_FAAD_XLARGE_IRAM
71#endif 81#endif
72 82
73#define INLINE __inline 83#define INLINE __inline
diff --git a/apps/codecs/libfaad/sbr_dec.c b/apps/codecs/libfaad/sbr_dec.c
index 4d9f9c4c45..6fe884639a 100644
--- a/apps/codecs/libfaad/sbr_dec.c
+++ b/apps/codecs/libfaad/sbr_dec.c
@@ -43,8 +43,8 @@
43 43
44 44
45/* globals */ 45/* globals */
46static qmf_t X_left [MAX_NTSRHFG][64] MEM_ALIGN_ATTR;// = {{0}}; 46static qmf_t X_left [MAX_NTSRHFG][64] IBSS_ATTR_FAAD_XLARGE_IRAM MEM_ALIGN_ATTR;
47static qmf_t X_right[MAX_NTSRHFG][64] MEM_ALIGN_ATTR;// = {{0}}; /* must set this to 0 */ 47static qmf_t X_right[MAX_NTSRHFG][64] IBSS_ATTR_FAAD_XLARGE_IRAM MEM_ALIGN_ATTR;
48 48
49 49
50/* static function declarations */ 50/* static function declarations */