diff options
author | Thom Johansen <thomj@rockbox.org> | 2005-06-12 12:53:10 +0000 |
---|---|---|
committer | Thom Johansen <thomj@rockbox.org> | 2005-06-12 12:53:10 +0000 |
commit | ca19564eec76831b2888c62d619b8837586d8a8a (patch) | |
tree | 2054007c599249432e12adab0018d7f6b14ee9ad /apps | |
parent | a1d75d3c79e0e3324b337176786994eb4caa0595 (diff) | |
download | rockbox-ca19564eec76831b2888c62d619b8837586d8a8a.tar.gz rockbox-ca19564eec76831b2888c62d619b8837586d8a8a.zip |
Enabled minor Tremor opt.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6688 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/codecs/Tremor/asm_mcf5249.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/apps/codecs/Tremor/asm_mcf5249.h b/apps/codecs/Tremor/asm_mcf5249.h index 9844cc05a4..a60c6ce2ad 100644 --- a/apps/codecs/Tremor/asm_mcf5249.h +++ b/apps/codecs/Tremor/asm_mcf5249.h | |||
@@ -110,14 +110,16 @@ void XNPROD31(ogg_int32_t a, ogg_int32_t b, | |||
110 | } | 110 | } |
111 | 111 | ||
112 | 112 | ||
113 | #if 1 | 113 | #if 0 |
114 | /* canonical definition */ | 114 | /* canonical definition */ |
115 | #define XPROD32(_a, _b, _t, _v, _x, _y) \ | 115 | #define XPROD32(_a, _b, _t, _v, _x, _y) \ |
116 | { (_x)=MULT32(_a,_t)+MULT32(_b,_v); \ | 116 | { (_x)=MULT32(_a,_t)+MULT32(_b,_v); \ |
117 | (_y)=MULT32(_b,_t)-MULT32(_a,_v); } | 117 | (_y)=MULT32(_b,_t)-MULT32(_a,_v); } |
118 | #else | 118 | #endif |
119 | /* Thom Johansen's suggestion; this could loose the LSB by overflow; | 119 | |
120 | Does it matter in practice? */ | 120 | /* this could lose the LSB by overflow, but i don't think it'll ever happen. |
121 | if anyone think they can hear a bug caused by this, please try the above | ||
122 | version. */ | ||
121 | #define XPROD32(_a, _b, _t, _v, _x, _y) \ | 123 | #define XPROD32(_a, _b, _t, _v, _x, _y) \ |
122 | asm volatile ("mac.l %[a], %[t], %%acc0;" \ | 124 | asm volatile ("mac.l %[a], %[t], %%acc0;" \ |
123 | "mac.l %[b], %[v], %%acc0;" \ | 125 | "mac.l %[b], %[v], %%acc0;" \ |
@@ -131,7 +133,6 @@ void XNPROD31(ogg_int32_t a, ogg_int32_t b, | |||
131 | : [a] "r" (_a), [b] "r" (_b), \ | 133 | : [a] "r" (_a), [b] "r" (_b), \ |
132 | [t] "r" (_t), [v] "r" (_v) \ | 134 | [t] "r" (_t), [v] "r" (_v) \ |
133 | : "cc"); | 135 | : "cc"); |
134 | #endif | ||
135 | 136 | ||
136 | 137 | ||
137 | /* asm versions of vector operations for block.c, window.c */ | 138 | /* asm versions of vector operations for block.c, window.c */ |