diff options
author | Jens Arnold <amiconn@rockbox.org> | 2008-08-09 22:32:34 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2008-08-09 22:32:34 +0000 |
commit | ee398634595e30978295d75706d2316a02975398 (patch) | |
tree | eb62bd2ab2e0b38c466382bd59540a12e2fc12ad /apps/codecs | |
parent | f28d1e59fec273f9b84eeb257942ab7f380a1803 (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.c | 11 |
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) |