summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2005-06-12 12:53:10 +0000
committerThom Johansen <thomj@rockbox.org>2005-06-12 12:53:10 +0000
commitca19564eec76831b2888c62d619b8837586d8a8a (patch)
tree2054007c599249432e12adab0018d7f6b14ee9ad /apps
parenta1d75d3c79e0e3324b337176786994eb4caa0595 (diff)
downloadrockbox-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.h11
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 */