diff options
author | Nils Wallménius <nils@rockbox.org> | 2010-11-23 11:58:00 +0000 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2010-11-23 11:58:00 +0000 |
commit | 8802c5de9d7251f3be69cec287384af774b3a27f (patch) | |
tree | aee2722fb2a518160309d1169ae43878e7837055 /apps | |
parent | 16d44e9b0272551cbc0bfdd99ac0b5ab8cdb6e2c (diff) | |
download | rockbox-8802c5de9d7251f3be69cec287384af774b3a27f.tar.gz rockbox-8802c5de9d7251f3be69cec287384af774b3a27f.zip |
codeclib: don't mark the outputs for the coldfire X(N)PROD_R asm macros as earlyclobbers as they are not, lets gcc produce better code. Speedup of 0.2-0.3MHz for codecs using the mdct, (larger speedup when building with gcc 4.4).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28650 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/codecs/lib/asm_mcf5249.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/apps/codecs/lib/asm_mcf5249.h b/apps/codecs/lib/asm_mcf5249.h index 12b69c9e51..9be92d2f2d 100644 --- a/apps/codecs/lib/asm_mcf5249.h +++ b/apps/codecs/lib/asm_mcf5249.h | |||
@@ -117,7 +117,7 @@ void XNPROD31(int32_t a, int32_t b, | |||
117 | "asr.l #1, %[x];" \ | 117 | "asr.l #1, %[x];" \ |
118 | "movclr.l %%acc1, %[y];" \ | 118 | "movclr.l %%acc1, %[y];" \ |
119 | "asr.l #1, %[y];" \ | 119 | "asr.l #1, %[y];" \ |
120 | : [x] "=&d" (_x), [y] "=&d" (_y) \ | 120 | : [x] "=d" (_x), [y] "=d" (_y) \ |
121 | : [a] "r" (_a), [b] "r" (_b), \ | 121 | : [a] "r" (_a), [b] "r" (_b), \ |
122 | [t] "r" (_t), [v] "r" (_v) \ | 122 | [t] "r" (_t), [v] "r" (_v) \ |
123 | : "cc"); | 123 | : "cc"); |
@@ -129,7 +129,7 @@ void XNPROD31(int32_t a, int32_t b, | |||
129 | "msac.l %[a], %[v], %%acc1;" \ | 129 | "msac.l %[a], %[v], %%acc1;" \ |
130 | "movclr.l %%acc0, %[x];" \ | 130 | "movclr.l %%acc0, %[x];" \ |
131 | "movclr.l %%acc1, %[y];" \ | 131 | "movclr.l %%acc1, %[y];" \ |
132 | : [x] "=&d" (_x), [y] "=&d" (_y) \ | 132 | : [x] "=d" (_x), [y] "=d" (_y) \ |
133 | : [a] "r" (_a), [b] "r" (_b), \ | 133 | : [a] "r" (_a), [b] "r" (_b), \ |
134 | [t] "r" (_t), [v] "r" (_v) \ | 134 | [t] "r" (_t), [v] "r" (_v) \ |
135 | : "cc"); | 135 | : "cc"); |
@@ -141,7 +141,7 @@ void XNPROD31(int32_t a, int32_t b, | |||
141 | "mac.l %[a], %[v], %%acc1;" \ | 141 | "mac.l %[a], %[v], %%acc1;" \ |
142 | "movclr.l %%acc0, %[x];" \ | 142 | "movclr.l %%acc0, %[x];" \ |
143 | "movclr.l %%acc1, %[y];" \ | 143 | "movclr.l %%acc1, %[y];" \ |
144 | : [x] "=&d" (_x), [y] "=&d" (_y) \ | 144 | : [x] "=d" (_x), [y] "=d" (_y) \ |
145 | : [a] "r" (_a), [b] "r" (_b), \ | 145 | : [a] "r" (_a), [b] "r" (_b), \ |
146 | [t] "r" (_t), [v] "r" (_v) \ | 146 | [t] "r" (_t), [v] "r" (_v) \ |
147 | : "cc"); | 147 | : "cc"); |