summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2008-04-08 20:02:56 +0000
committerThom Johansen <thomj@rockbox.org>2008-04-08 20:02:56 +0000
commit66427c3e476d9cbd93375499abaf818ee73df581 (patch)
treeed08a00c95ea7dd8c01e8319290bca04c58fe752
parent43def523e4d103bcb10c32125317db7ab2c480b9 (diff)
downloadrockbox-66427c3e476d9cbd93375499abaf818ee73df581.zip
rockbox-66427c3e476d9cbd93375499abaf818ee73df581.tar.gz
rockbox-66427c3e476d9cbd93375499abaf818ee73df581.tar.bz2
rockbox-66427c3e476d9cbd93375499abaf818ee73df581.tar.xz
Remove ACC_INIT, ACC and GET_ACC macros. These were quite Coldfire-centric macros which really aren't needed since all performance sensitive target DSP code should be assembler anyway.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17037 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/dsp.c16
-rw-r--r--apps/dsp.h23
2 files changed, 8 insertions, 31 deletions
diff --git a/apps/dsp.c b/apps/dsp.c
index a259ea4..faa08ed 100644
--- a/apps/dsp.c
+++ b/apps/dsp.c
@@ -714,19 +714,19 @@ static void apply_crossfeed(int count, int32_t *buf[])
right = buf[1][i];
/* Filter delayed sample from left speaker */
- ACC_INIT(acc, *di, coefs[0]);
- ACC(acc, hist_l[0], coefs[1]);
- ACC(acc, hist_l[1], coefs[2]);
+ acc = FRACMUL(*di, coefs[0]);
+ acc += FRACMUL(hist_l[0], coefs[1]);
+ acc += FRACMUL(hist_l[1], coefs[2]);
/* Save filter history for left speaker */
- hist_l[1] = GET_ACC(acc);
+ hist_l[1] = acc;
hist_l[0] = *di;
*di++ = left;
/* Filter delayed sample from right speaker */
- ACC_INIT(acc, *di, coefs[0]);
- ACC(acc, hist_r[0], coefs[1]);
- ACC(acc, hist_r[1], coefs[2]);
+ acc = FRACMUL(*di, coefs[0]);
+ acc += FRACMUL(hist_r[0], coefs[1]);
+ acc += FRACMUL(hist_r[1], coefs[2]);
/* Save filter history for right speaker */
- hist_r[1] = GET_ACC(acc);
+ hist_r[1] = acc;
hist_r[0] = *di;
*di++ = right;
/* Now add the attenuated direct sound and write to outputs */
diff --git a/apps/dsp.h b/apps/dsp.h
index 799d023..21807b9 100644
--- a/apps/dsp.h
+++ b/apps/dsp.h
@@ -121,22 +121,6 @@ enum {
: [b] "r" (y)); \
}
-#define ACC(acc, x, y) \
- (void)acc; \
- asm ("mac.l %[a], %[b], %%acc0" \
- : : [a] "i,r" (x), [b] "i,r" (y));
-
-#define GET_ACC(acc) \
-({ \
- long t; \
- (void)acc; \
- asm ("movclr.l %%acc0, %[t]" \
- : [t] "=r" (t)); \
- t; \
-})
-
-#define ACC_INIT(acc, x, y) ACC(acc, x, y)
-
#elif defined(CPU_ARM)
/* Multiply two S.31 fractional integers and return the sign bit and the
@@ -168,10 +152,6 @@ enum {
t; \
})
-#define ACC_INIT(acc, x, y) acc = FRACMUL(x, y)
-#define ACC(acc, x, y) acc += FRACMUL(x, y)
-#define GET_ACC(acc) acc
-
/* Multiply one S.31-bit and one S8.23 fractional integer and store the
* sign bit and the 31 most significant bits of the result to d (and
* increase d). Load next value to multiply with into x from s (and
@@ -190,9 +170,6 @@ enum {
#else
-#define ACC_INIT(acc, x, y) acc = FRACMUL(x, y)
-#define ACC(acc, x, y) acc += FRACMUL(x, y)
-#define GET_ACC(acc) acc
#define FRACMUL(x, y) (long) (((((long long) (x)) * ((long long) (y))) >> 31))
#define FRACMUL_SHL(x, y, z) \
((long)(((((long long) (x)) * ((long long) (y))) >> (31 - (z)))))