forked from len0rd/rockbox
opus: put frequently used mdct buffer on the real stack which is in iram
Saves about 30MHz on h300 (cf) and 1.5MHz on c200 (pp) decoding a 64kbps test file. Stack usage is still below 70%. Change-Id: Ib13df9011adb4eef4bb91a52e5a32741c8bf8988
This commit is contained in:
parent
425725edb0
commit
f636aa07df
1 changed files with 4 additions and 3 deletions
|
@ -214,14 +214,15 @@ void clt_mdct_backward(const mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scala
|
||||||
int i;
|
int i;
|
||||||
int N, N2, N4;
|
int N, N2, N4;
|
||||||
kiss_twiddle_scalar sine;
|
kiss_twiddle_scalar sine;
|
||||||
VARDECL(kiss_fft_scalar, f);
|
/* VARDECL(kiss_fft_scalar, f); */
|
||||||
VARDECL(kiss_fft_scalar, f2);
|
VARDECL(kiss_fft_scalar, f2);
|
||||||
SAVE_STACK;
|
SAVE_STACK;
|
||||||
N = l->n;
|
N = l->n; /* static modes => N = 1920 */
|
||||||
N >>= shift;
|
N >>= shift;
|
||||||
N2 = N>>1;
|
N2 = N>>1;
|
||||||
N4 = N>>2;
|
N4 = N>>2;
|
||||||
ALLOC(f, N2, kiss_fft_scalar);
|
/* ALLOC(f, N2, kiss_fft_scalar); */
|
||||||
|
kiss_fft_scalar f[N2]; /* worst case 3840b */
|
||||||
ALLOC(f2, N2, kiss_fft_scalar);
|
ALLOC(f2, N2, kiss_fft_scalar);
|
||||||
/* sin(x) ~= x here */
|
/* sin(x) ~= x here */
|
||||||
#ifdef FIXED_POINT
|
#ifdef FIXED_POINT
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue