Index: apps/codecs/flac.c =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/flac.c,v retrieving revision 1.24 diff -u -r1.24 flac.c --- apps/codecs/flac.c 29 Jan 2006 01:31:28 -0000 1.24 +++ apps/codecs/flac.c 10 Apr 2006 18:11:53 -0000 @@ -34,7 +34,7 @@ struct codec_api* ci; /* The output buffers containing the decoded samples (channels 0 and 1) */ -int32_t decoded0[MAX_BLOCKSIZE] IBSS_ATTR; +int32_t decoded0[MAX_BLOCKSIZE] IBSS_ATTR_FLAC0; int32_t decoded1[MAX_BLOCKSIZE] IBSS_ATTR; #define MAX_SUPPORTED_SEEKTABLE_SIZE 5000 Index: apps/codecs/mpa.c =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/mpa.c,v retrieving revision 1.38 diff -u -r1.38 mpa.c --- apps/codecs/mpa.c 22 Jan 2006 10:25:07 -0000 1.38 +++ apps/codecs/mpa.c 10 Apr 2006 18:11:53 -0000 @@ -98,13 +98,13 @@ int samples_to_skip; /* samples to skip in total for this file (at start) */ char *inputbuffer; - ci = api; - #ifdef USE_IRAM - ci->memcpy(iramstart, iramcopy, iramend - iramstart); - ci->memset(iedata, 0, iend - iedata); + api->memcpy(iramstart, iramcopy, iramend - iramstart); + api->memset(iedata, 0, iend - iedata); #endif + ci = api; + if (codec_init(api)) return CODEC_ERROR; @@ -184,6 +184,7 @@ mad_stream_buffer(&stream, (unsigned char *)inputbuffer, size); } + //*((volatile unsigned long *)0x803f0004) = 1; if (mad_frame_decode(&frame, &stream)) { if (stream.error == MAD_FLAG_INCOMPLETE || stream.error == MAD_ERROR_BUFLEN) { @@ -212,6 +213,7 @@ file_end = 0; mad_synth_frame(&synth, &frame); + //*((volatile unsigned long *)0x803f0004) = 0; /* We need to skip samples_to_skip samples from the start of every file to properly support LAME style gapless MP3 files. samples_to_skip Index: apps/codecs/mpc.c =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/mpc.c,v retrieving revision 1.21 diff -u -r1.21 mpc.c --- apps/codecs/mpc.c 13 Feb 2006 19:24:36 -0000 1.21 +++ apps/codecs/mpc.c 10 Apr 2006 18:11:53 -0000 @@ -64,7 +64,7 @@ } /* temporary, we probably have better use for iram than this */ -MPC_SAMPLE_FORMAT sample_buffer[MPC_FRAME_LENGTH*2] IBSS_ATTR; +MPC_SAMPLE_FORMAT sample_buffer[MPC_FRAME_LENGTH*2] IBSS_ATTR_MPC_SAMPLE_BUF; #ifdef USE_IRAM extern char iramcopy[]; Index: apps/codecs/vorbis.c =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/vorbis.c,v retrieving revision 1.21 diff -u -r1.21 vorbis.c --- apps/codecs/vorbis.c 1 Mar 2006 01:07:56 -0000 1.21 +++ apps/codecs/vorbis.c 10 Apr 2006 18:11:53 -0000 @@ -122,13 +122,13 @@ ogg_uint32_t vf_serialnos; ogg_int64_t vf_pcmlengths[2]; - rb = api; - #ifdef USE_IRAM - rb->memcpy(iramstart, iramcopy, iramend - iramstart); - rb->memset(iedata, 0, iend - iedata); + api->memcpy(iramstart, iramcopy, iramend - iramstart); + api->memset(iedata, 0, iend - iedata); #endif + rb = api; + rb->configure(CODEC_DSP_ENABLE, (bool *)true); rb->configure(DSP_DITHER, (bool *)false); rb->configure(DSP_SET_SAMPLE_DEPTH, (long *)24); @@ -218,7 +218,9 @@ } /* Read host-endian signed 24-bit PCM samples */ + //*((volatile unsigned long *)0x803f0004) = 1; n = ov_read_fixed(&vf, &pcm, 1024, ¤t_section); + //*((volatile unsigned long *)0x803f0004) = 0; /* Change DSP and buffer settings for this bitstream */ if (current_section != previous_section) { Index: apps/codecs/Tremor/config-tremor.h =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/Tremor/config-tremor.h,v retrieving revision 1.6 diff -u -r1.6 config-tremor.h --- apps/codecs/Tremor/config-tremor.h 28 Jan 2006 21:21:21 -0000 1.6 +++ apps/codecs/Tremor/config-tremor.h 10 Apr 2006 18:11:54 -0000 @@ -13,6 +13,14 @@ #define BIG_ENDIAN 0 #endif +#ifndef ICONST_ATTR_TREMOR_WINDOW +#define ICONST_ATTR_TREMOR_WINDOW ICONST_ATTR +#endif + +#ifndef ICODE_ATTR_TREMOR_MDCT +#define ICODE_ATTR_TREMOR_MDCT __attribute__ ((section(".icode"))) +#endif + /* As of 28 Dec 2005, the Tremor code is too big for IRAM on the iPod, so we temporarily disable ICODE_ATTR - this needs reviewing when it comes to optimising Tremor for the iPod */ Index: apps/codecs/Tremor/window_lookup.h =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/Tremor/window_lookup.h,v retrieving revision 1.7 diff -u -r1.7 window_lookup.h --- apps/codecs/Tremor/window_lookup.h 27 Oct 2005 11:39:01 -0000 1.7 +++ apps/codecs/Tremor/window_lookup.h 10 Apr 2006 18:11:55 -0000 @@ -51,7 +51,7 @@ X(0x7ffdcf39), X(0x7fff6dac), X(0x7fffed01), X(0x7fffffc4), }; -static LOOKUP_T vwin256[128] ICONST_ATTR = { +static LOOKUP_T vwin256[128] ICONST_ATTR_TREMOR_WINDOW = { X(0x0001f018), X(0x00117066), X(0x00306e9e), X(0x005ee5f1), X(0x009ccf26), X(0x00ea208b), X(0x0146cdea), X(0x01b2c87f), X(0x022dfedf), X(0x02b85ced), X(0x0351cbbd), X(0x03fa317f), @@ -284,7 +284,7 @@ X(0x7fffffdd), X(0x7ffffff7), X(0x7fffffff), X(0x7fffffff), }; -static LOOKUP_T vwin2048[1024] ICONST_ATTR = { +static LOOKUP_T vwin2048[1024] ICONST_ATTR_TREMOR_WINDOW = { X(0x000007c0), X(0x000045c4), X(0x0000c1ca), X(0x00017bd3), X(0x000273de), X(0x0003a9eb), X(0x00051df9), X(0x0006d007), X(0x0008c014), X(0x000aee1e), X(0x000d5a25), X(0x00100428), Index: apps/codecs/libffmpegFLAC/bitstream.h =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/libffmpegFLAC/bitstream.h,v retrieving revision 1.3 diff -u -r1.3 bitstream.h --- apps/codecs/libffmpegFLAC/bitstream.h 3 Nov 2005 18:48:23 -0000 1.3 +++ apps/codecs/libffmpegFLAC/bitstream.h 10 Apr 2006 18:11:55 -0000 @@ -252,7 +252,7 @@ return tmp; } -unsigned int get_bits_long(GetBitContext *s, int n) ICODE_ATTR; +unsigned int get_bits_long(GetBitContext *s, int n) ICODE_ATTR_FLAC; /** * shows 0-17 bits. @@ -267,7 +267,7 @@ return tmp; } -unsigned int show_bits_long(GetBitContext *s, int n) ICODE_ATTR; +unsigned int show_bits_long(GetBitContext *s, int n) ICODE_ATTR_FLAC; static inline void skip_bits(GetBitContext *s, int n){ //Note gcc seems to optimize this to s->index+=n for the ALT_READER :)) @@ -328,6 +328,6 @@ } } -void align_get_bits(GetBitContext *s) ICODE_ATTR; +void align_get_bits(GetBitContext *s) ICODE_ATTR_FLAC; #endif /* BITSTREAM_H */ Index: apps/codecs/libffmpegFLAC/decoder.c =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/libffmpegFLAC/decoder.c,v retrieving revision 1.6 diff -u -r1.6 decoder.c --- apps/codecs/libffmpegFLAC/decoder.c 6 Mar 2006 11:14:29 -0000 1.6 +++ apps/codecs/libffmpegFLAC/decoder.c 10 Apr 2006 18:11:55 -0000 @@ -99,7 +99,7 @@ 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3 }; -static int64_t get_utf8(GetBitContext *gb) ICODE_ATTR; +static int64_t get_utf8(GetBitContext *gb) ICODE_ATTR_FLAC; static int64_t get_utf8(GetBitContext *gb) { uint64_t val; @@ -124,7 +124,7 @@ return val; } -static int get_crc8(const uint8_t *buf, int count) ICODE_ATTR; +static int get_crc8(const uint8_t *buf, int count) ICODE_ATTR_FLAC; static int get_crc8(const uint8_t *buf, int count) { int crc=0; @@ -137,7 +137,7 @@ return crc; } -static int decode_residuals(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR; +static int decode_residuals(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR_FLAC; static int decode_residuals(FLACContext *s, int32_t* decoded, int pred_order) { int i, tmp, partition, method_type, rice_order; @@ -177,7 +177,7 @@ return 0; } -static int decode_subframe_fixed(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR; +static int decode_subframe_fixed(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR_FLAC; static int decode_subframe_fixed(FLACContext *s, int32_t* decoded, int pred_order) { int i; @@ -224,7 +224,7 @@ return 0; } -static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR; +static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR_FLAC; static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order) { int sum, i, j; @@ -377,7 +377,7 @@ static int decode_frame(FLACContext *s, int32_t* decoded0, int32_t* decoded1, - void (*yield)(void)) ICODE_ATTR; + void (*yield)(void)) ICODE_ATTR_FLAC; static int decode_frame(FLACContext *s, int32_t* decoded0, int32_t* decoded1, Index: apps/codecs/libffmpegFLAC/decoder.h =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/libffmpegFLAC/decoder.h,v retrieving revision 1.3 diff -u -r1.3 decoder.h --- apps/codecs/libffmpegFLAC/decoder.h 13 Feb 2006 19:26:18 -0000 1.3 +++ apps/codecs/libffmpegFLAC/decoder.h 10 Apr 2006 18:11:55 -0000 @@ -41,6 +41,6 @@ int32_t* decoded0, int32_t* decoded1, uint8_t *buf, int buf_size, - void (*yield)(void)) ICODE_ATTR; + void (*yield)(void)) ICODE_ATTR_FLAC; #endif Index: apps/codecs/libffmpegFLAC/shndec.c =================================================================== RCS file: /cvsroot/rockbox/apps/codecs/libffmpegFLAC/shndec.c,v retrieving revision 1.3 diff -u -r1.3 shndec.c --- apps/codecs/libffmpegFLAC/shndec.c 7 Feb 2006 22:16:35 -0000 1.3 +++ apps/codecs/libffmpegFLAC/shndec.c 10 Apr 2006 18:11:55 -0000 @@ -83,7 +83,7 @@ } #if defined(CPU_COLDFIRE) && !defined(SIMULATOR) -static void coldfire_lshift_samples(int n, int shift, int32_t *samples) ICODE_ATTR; +static void coldfire_lshift_samples(int n, int shift, int32_t *samples) ICODE_ATTR_FLAC; static void coldfire_lshift_samples(int n, int shift, int32_t *samples) { /* Index: firmware/export/config-ifp7xx.h =================================================================== RCS file: /cvsroot/rockbox/firmware/export/config-ifp7xx.h,v retrieving revision 1.2 diff -u -r1.2 config-ifp7xx.h --- firmware/export/config-ifp7xx.h 4 Feb 2006 00:04:02 -0000 1.2 +++ firmware/export/config-ifp7xx.h 10 Apr 2006 18:11:56 -0000 @@ -97,2 +97,7 @@ +#define ICODE_ATTR_FLAC +#define IBSS_ATTR_FLAC0 +#define IBSS_ATTR_MPC_SAMPLE_BUF +#define ICONST_ATTR_TREMOR_WINDOW + #endif Index: firmware/export/config.h =================================================================== RCS file: /cvsroot/rockbox/firmware/export/config.h,v retrieving revision 1.60 diff -u -r1.60 config.h --- firmware/export/config.h 27 Feb 2006 12:35:05 -0000 1.60 +++ firmware/export/config.h 10 Apr 2006 18:11:56 -0000 @@ -216,7 +216,8 @@ (CONFIG_CPU == MCF5249) || /* Coldfire: core, plugins, codecs */ \ (CONFIG_CPU == PP5020) || /* iPod: core, plugins, codecs */ \ (CONFIG_CPU == PP5002) || /* iPod: core, plugins, codecs */ \ - (CONFIG_CPU == TCC730)) /* CalmRISC16: core, (plugins, codecs) */ + (CONFIG_CPU == TCC730) || /* CalmRISC16: core, (plugins, codecs) */ \ + (CONFIG_CPU == PNX0101)) #define ICODE_ATTR __attribute__ ((section(".icode"))) #define ICONST_ATTR __attribute__ ((section(".irodata"))) #define IDATA_ATTR __attribute__ ((section(".idata"))) @@ -229,4 +230,16 @@ #define IBSS_ATTR #endif +#ifndef ICODE_ATTR_FLAC +#define ICODE_ATTR_FLAC ICODE_ATTR +#endif + +#ifndef IBSS_ATTR_FLAC0 +#define IBSS_ATTR_FLAC0 IBSS_ATTR +#endif + +#ifndef IBSS_ATTR_MPC_SAMPLE_BUF +#define IBSS_ATTR_MPC_SAMPLE_BUF IBSS_ATTR +#endif + #endif