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)))))