summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-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)