1
0
Fork 0
forked from len0rd/rockbox

SPC codec: enable echo on ColdFire CPU. Do a couple general small optimizations. Preswap some data when running DSP for big endian.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12410 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Sevakis 2007-02-20 10:27:39 +00:00
parent 8336eb2390
commit d31162a9d3
2 changed files with 191 additions and 31 deletions

View file

@ -51,8 +51,13 @@ CODEC_HEADER
/* Disable gaussian interpolation */
#define SPC_NOINTERP 1
#ifndef CPU_COLDFIRE
/* Disable echo processing */
#define SPC_NOECHO 1
#else
/* Enable echo processing */
#define SPC_NOECHO 0
#endif
#else
/* Don't cache BRR waves */
#define SPC_BRRCACHE 0
@ -100,6 +105,8 @@ static inline void set_le16( void* p, unsigned n )
#define GET_LE16( addr ) get_le16( addr )
#define SET_LE16( addr, data ) set_le16( addr, data )
#define INT16A( addr ) (*(uint16_t*) (addr))
#define INT16SA( addr ) (*(int16_t*) (addr))
#ifdef ROCKBOX_LITTLE_ENDIAN
#define GET_LE16A( addr ) (*(uint16_t*) (addr))
@ -794,6 +801,10 @@ enum codec_status codec_main(void)
{
memcpy( spc_emu.cycle_table, cycle_table, sizeof cycle_table );
#ifdef CPU_COLDFIRE
coldfire_set_macsr(EMAC_SATURATE);
#endif
do
{
DEBUGF("SPC: next_track\n");