summaryrefslogtreecommitdiffstats
path: root/apps/codecs/libmusepack/mpcdec.h
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2011-05-16 21:31:59 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2011-05-16 21:31:59 +0000
commit22c9b6ef8e1e1f4354ff0fc445990512175a1649 (patch)
tree5389bf2dc5ca9cb3b440f9c58854020accb4ac98 /apps/codecs/libmusepack/mpcdec.h
parente8c79d65e18be1eb1ddc8a0e32a04c17dbc73459 (diff)
downloadrockbox-22c9b6ef8e1e1f4354ff0fc445990512175a1649.tar.gz
rockbox-22c9b6ef8e1e1f4354ff0fc445990512175a1649.zip
Use more IRAM for mpc on S5L870x. Speed up decoding by ~2%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29891 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libmusepack/mpcdec.h')
-rw-r--r--apps/codecs/libmusepack/mpcdec.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/apps/codecs/libmusepack/mpcdec.h b/apps/codecs/libmusepack/mpcdec.h
index d4c3bd22fc..68754dcbd2 100644
--- a/apps/codecs/libmusepack/mpcdec.h
+++ b/apps/codecs/libmusepack/mpcdec.h
@@ -52,23 +52,42 @@ extern "C" {
#define IBSS_ATTR_MPC_LARGE_IRAM IBSS_ATTR
#define ICODE_ATTR_MPC_LARGE_IRAM
#define ICONST_ATTR_MPC_LARGE_IRAM ICONST_ATTR
+/* Does not fit into IRAM. */
+#define IBSS_ATTR_MPC_BITBUFFER
+#define ICODE_ATTR_MPC_SV8_BS_DEC
/* Keep the data arrays of bitsreadr.c in IRAM. */
#define ICONST_ATTR_MPC_BITSREADER ICONST_ATTR
-#elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || defined(CPU_S5L870X)
+#elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024)
/* Enough IRAM to move additional data and code to it. */
#define IBSS_ATTR_MPC_LARGE_IRAM IBSS_ATTR
#define ICODE_ATTR_MPC_LARGE_IRAM ICODE_ATTR
#define ICONST_ATTR_MPC_LARGE_IRAM ICONST_ATTR
+/* Does not fit into IRAM. */
+#define IBSS_ATTR_MPC_BITBUFFER
+#define ICODE_ATTR_MPC_SV8_BS_DEC
/* Not putting the data arrays of bitsreader.c to IRAM allows to move the
* sv7/sv8 bitstream demuxing into IRAM. This config is faster. */
#define ICONST_ATTR_MPC_BITSREADER
+#elif defined(CPU_S5L870X)
+/* Enough IRAM to move additional data and code to it. */
+#define IBSS_ATTR_MPC_LARGE_IRAM IBSS_ATTR
+#define ICODE_ATTR_MPC_LARGE_IRAM ICODE_ATTR
+#define ICONST_ATTR_MPC_LARGE_IRAM ICONST_ATTR
+/* Faster when moved to IRAM. */
+#define IBSS_ATTR_MPC_BITBUFFER IBSS_ATTR
+#define ICODE_ATTR_MPC_SV8_BS_DEC ICODE_ATTR
+/* Not faster when moved to IRAM. */
+#define ICONST_ATTR_MPC_BITSREADER
+
#else
/* Not enough IRAM available. */
#define IBSS_ATTR_MPC_LARGE_IRAM
#define ICODE_ATTR_MPC_LARGE_IRAM
#define ICONST_ATTR_MPC_LARGE_IRAM
+#define IBSS_ATTR_MPC_BITBUFFER
+#define ICODE_ATTR_MPC_SV8_BS_DEC
#define ICONST_ATTR_MPC_BITSREADER
#endif