1
0
Fork 0
forked from len0rd/rockbox

Squeezed two very frequently used arrays in IRAM for a very nice performance boost.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7676 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Thom Johansen 2005-10-28 20:21:58 +00:00
parent e12ab49b73
commit c01b987cca
2 changed files with 12 additions and 2 deletions

View file

@ -136,8 +136,12 @@ typedef struct mpc_decoder_t {
unsigned char SCF_shift[256];
#endif
MPC_SAMPLE_FORMAT V_L[MPC_V_MEM + 960];
MPC_SAMPLE_FORMAT V_R[MPC_V_MEM + 960];
/* These two see very frequent use in synth_filter.c, so we'll put them
in IRAM for Rockbox use. Actual arrays are placed in mpc_decoder.c */
/* MPC_SAMPLE_FORMAT V_L[MPC_V_MEM + 960]; */
/* MPC_SAMPLE_FORMAT V_R[MPC_V_MEM + 960]; */
MPC_SAMPLE_FORMAT *V_L;
MPC_SAMPLE_FORMAT *V_R;
MPC_SAMPLE_FORMAT Y_L[36][32];
MPC_SAMPLE_FORMAT Y_R[36][32];
MPC_SAMPLE_FORMAT SCF[256]; ///< holds adapted scalefactors (for clipping prevention)

View file

@ -1106,6 +1106,9 @@ mpc_decoder_read_bitstream_sv7(mpc_decoder *d)
}
}
MPC_SAMPLE_FORMAT V_L[MPC_V_MEM + 960] IBSS_ATTR;
MPC_SAMPLE_FORMAT V_R[MPC_V_MEM + 960] IBSS_ATTR;
void mpc_decoder_setup(mpc_decoder *d, mpc_reader *r)
{
d->r = r;
@ -1174,6 +1177,9 @@ void mpc_decoder_setup(mpc_decoder *d, mpc_reader *r)
mpc_decoder_init_huffman_sv6(d);
mpc_decoder_init_huffman_sv7(d);
/* Link struct entries to actual tables which are placed in IRAM */
d->V_L = V_L;
d->V_R = V_R;
#if defined(CPU_COLDFIRE)&& !defined(SIMULATOR)
coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE);
#endif