diff options
author | Nils Wallménius <nils@rockbox.org> | 2010-11-26 10:45:33 +0000 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2010-11-26 10:45:33 +0000 |
commit | b397fe5ae373e3b62fee9150ab786c344c2084cd (patch) | |
tree | edb4b72f91a5d2fbbb5bd6b523e07f2debdeb344 /apps/codecs/libtremor/asm_mcf5249.h | |
parent | c7e512248388a8196c3b8e5602536f9c85eeb043 (diff) | |
download | rockbox-b397fe5ae373e3b62fee9150ab786c344c2084cd.tar.gz rockbox-b397fe5ae373e3b62fee9150ab786c344c2084cd.zip |
libtremor: small tweak to coldfire inline asm function MULT31_SHIFT15, saving one instruction, *tiny* speedup, output unchanged
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28666 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libtremor/asm_mcf5249.h')
-rw-r--r-- | apps/codecs/libtremor/asm_mcf5249.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/apps/codecs/libtremor/asm_mcf5249.h b/apps/codecs/libtremor/asm_mcf5249.h index c13255b933..621beadde8 100644 --- a/apps/codecs/libtremor/asm_mcf5249.h +++ b/apps/codecs/libtremor/asm_mcf5249.h | |||
@@ -56,11 +56,10 @@ static inline ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) { | |||
56 | asm volatile ("mac.l %[x], %[y], %%acc0;" /* multiply */ | 56 | asm volatile ("mac.l %[x], %[y], %%acc0;" /* multiply */ |
57 | "mulu.l %[y], %[x];" /* get lower half, avoid emac stall */ | 57 | "mulu.l %[y], %[x];" /* get lower half, avoid emac stall */ |
58 | "movclr.l %%acc0, %[r];" /* get higher half */ | 58 | "movclr.l %%acc0, %[r];" /* get higher half */ |
59 | "asl.l #8, %[r];" /* hi<<16, plus one free */ | 59 | "swap %[r];" /* hi<<16, plus one free */ |
60 | "asl.l #8, %[r];" | ||
61 | "lsr.l #8, %[x];" /* (unsigned)lo >> 15 */ | 60 | "lsr.l #8, %[x];" /* (unsigned)lo >> 15 */ |
62 | "lsr.l #7, %[x];" | 61 | "lsr.l #7, %[x];" |
63 | "or.l %[x], %[r];" /* logical-or results */ | 62 | "move.w %[x], %[r];" /* logical-or results */ |
64 | : [r] "=&d" (r), [x] "+d" (x) | 63 | : [r] "=&d" (r), [x] "+d" (x) |
65 | : [y] "d" (y) | 64 | : [y] "d" (y) |
66 | : "cc"); | 65 | : "cc"); |