summaryrefslogtreecommitdiff
path: root/apps/codecs
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2008-08-09 22:32:34 +0000
committerJens Arnold <amiconn@rockbox.org>2008-08-09 22:32:34 +0000
commitee398634595e30978295d75706d2316a02975398 (patch)
treeeb62bd2ab2e0b38c466382bd59540a12e2fc12ad /apps/codecs
parentf28d1e59fec273f9b84eeb257942ab7f380a1803 (diff)
Speed up WMA decoding on coldfire (14% speedup with a 128kbps test file).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18228 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs')
-rw-r--r--apps/codecs/libwma/wmadeci.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/apps/codecs/libwma/wmadeci.c b/apps/codecs/libwma/wmadeci.c
index b09dd0edd2..b8996c1b16 100644
--- a/apps/codecs/libwma/wmadeci.c
+++ b/apps/codecs/libwma/wmadeci.c
@@ -154,10 +154,13 @@ void vector_fmul_add_add(fixed32 *dst, const fixed32 *data,
"movclr.l %%acc1, %%d1;"
"movclr.l %%acc2, %%d2;"
"movclr.l %%acc3, %%d3;"
- "add.l %%d0, (%[dst])+;"
- "add.l %%d1, (%[dst])+;"
- "add.l %%d2, (%[dst])+;"
- "add.l %%d3, (%[dst])+;"
+ "movem.l (%[dst]), %%d4-%%d5/%%a0-%%a1;"
+ "add.l %%d4, %%d0;"
+ "add.l %%d5, %%d1;"
+ "add.l %%a0, %%d2;"
+ "add.l %%a1, %%d3;"
+ "movem.l %%d0-%%d3, (%[dst]);"
+ "lea.l (16, %[dst]), %[dst];"
"subq.l #4, %[n];"
"jne 0b;"
: [d] "+a" (data), [w] "+a" (window), [dst] "+a" (dst), [n] "+d" (n)