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:
parent
e12ab49b73
commit
c01b987cca
2 changed files with 12 additions and 2 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue