From 66427c3e476d9cbd93375499abaf818ee73df581 Mon Sep 17 00:00:00 2001 From: Thom Johansen Date: Tue, 8 Apr 2008 20:02:56 +0000 Subject: [PATCH] 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 --- apps/dsp.c | 16 ++++++++-------- apps/dsp.h | 23 ----------------------- 2 files changed, 8 insertions(+), 31 deletions(-) diff --git a/apps/dsp.c b/apps/dsp.c index a259ea4aae..faa08ed202 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 799d023aee..21807b9578 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)))))