summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2005-09-21 23:09:19 +0000
committerThom Johansen <thomj@rockbox.org>2005-09-21 23:09:19 +0000
commit1b79209ea7d02956cf27ce719516dcf495e26f98 (patch)
treee98519b14ddbcaec191eb9c0f7959f5b0f974500
parentf60e6200f64f0fcf9d82027eaf40ddad0f1e2f17 (diff)
downloadrockbox-1b79209ea7d02956cf27ce719516dcf495e26f98.tar.gz
rockbox-1b79209ea7d02956cf27ce719516dcf495e26f98.tar.bz2
rockbox-1b79209ea7d02956cf27ce719516dcf495e26f98.zip
Avoid EMAC stall in MULT31_SHIFT15.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7530 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/Tremor/asm_mcf5249.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/apps/codecs/Tremor/asm_mcf5249.h b/apps/codecs/Tremor/asm_mcf5249.h
index eb6ed759fc..16878d73ee 100644
--- a/apps/codecs/Tremor/asm_mcf5249.h
+++ b/apps/codecs/Tremor/asm_mcf5249.h
@@ -55,8 +55,8 @@ static inline ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) {
ogg_int32_t r;
asm volatile ("mac.l %[x], %[y], %%acc0;" /* multiply */
+ "mulu.l %[y], %[x];" /* get lower half, avoid emac stall */
"movclr.l %%acc0, %[r];" /* get higher half */
- "mulu.l %[y], %[x];" /* get lower half */
"asl.l #8, %[r];" /* hi<<16, plus one free */
"asl.l #8, %[r];"
"lsr.l #8, %[x];" /* (unsigned)lo >> 15 */