summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Giacomelli <giac2000@hotmail.com>2007-07-29 05:21:20 +0000
committerMichael Giacomelli <giac2000@hotmail.com>2007-07-29 05:21:20 +0000
commitf68ab0d497fb2f0f13e31f4d9e29f92f457edc37 (patch)
tree4400780801bd663692e0b5d2d2fca7f89c8bd79f
parente64f7e3a6f3019be855469373920198ac19ee654 (diff)
downloadrockbox-f68ab0d497fb2f0f13e31f4d9e29f92f457edc37.tar.gz
rockbox-f68ab0d497fb2f0f13e31f4d9e29f92f457edc37.zip
Fix mp3 playback on the gigabeat by not putting code in IRAM. Someone actually familar with the gigabeat port should check this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14050 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/libmad/dct32_arm.S2
-rw-r--r--apps/codecs/libmad/synth.c16
-rw-r--r--apps/codecs/libmad/synth_full_arm.S2
3 files changed, 10 insertions, 10 deletions
diff --git a/apps/codecs/libmad/dct32_arm.S b/apps/codecs/libmad/dct32_arm.S
index 4d94896b0b..8ead5af899 100644
--- a/apps/codecs/libmad/dct32_arm.S
+++ b/apps/codecs/libmad/dct32_arm.S
@@ -23,7 +23,7 @@
23 23
24/* This performs slower in IRAM on PP502x and there is no space in 24/* This performs slower in IRAM on PP502x and there is no space in
25 mpegplayer on the PP5002 */ 25 mpegplayer on the PP5002 */
26#if defined(CPU_PP502x) || (CONFIG_CPU == PP5002 && defined(MPEGPLAYER)) 26#if defined(CPU_PP502x) || (CONFIG_CPU == PP5002 && defined(MPEGPLAYER)) || defined(TOSHIBA_GIGABEAT_F)
27 .section .text,"ax",%progbits 27 .section .text,"ax",%progbits
28#else 28#else
29 .section .icode,"ax",%progbits 29 .section .icode,"ax",%progbits
diff --git a/apps/codecs/libmad/synth.c b/apps/codecs/libmad/synth.c
index c3a868a0dc..00e00ad5ff 100644
--- a/apps/codecs/libmad/synth.c
+++ b/apps/codecs/libmad/synth.c
@@ -584,7 +584,7 @@ void synth_full(struct mad_synth *, struct mad_frame const *,
584 */ 584 */
585 585
586/* optimised version of synth_full */ 586/* optimised version of synth_full */
587# ifdef FPM_COLDFIRE_EMAC 587# ifdef FPM_COLDFIRE_EMAC
588static 588static
589void synth_full(struct mad_synth *synth, struct mad_frame const *frame, 589void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
590 unsigned int nch, unsigned int ns) 590 unsigned int nch, unsigned int ns)
@@ -630,7 +630,7 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
630 "msac.l %%d5, %%a5, 20(%2), %%a5, %%acc0\n\t" 630 "msac.l %%d5, %%a5, 20(%2), %%a5, %%acc0\n\t"
631 "msac.l %%d6, %%a5, 12(%2), %%a5, %%acc0\n\t" 631 "msac.l %%d6, %%a5, 12(%2), %%a5, %%acc0\n\t"
632 "msac.l %%d7, %%a5, (%2), %%a5, %%acc0\n\t" 632 "msac.l %%d7, %%a5, (%2), %%a5, %%acc0\n\t"
633 633
634 "movem.l (%3), %%d0-%%d7\n\t" 634 "movem.l (%3), %%d0-%%d7\n\t"
635 "mac.l %%d0, %%a5, 56(%2), %%a5, %%acc0\n\t" 635 "mac.l %%d0, %%a5, 56(%2), %%a5, %%acc0\n\t"
636 "mac.l %%d1, %%a5, 48(%2), %%a5, %%acc0\n\t" 636 "mac.l %%d1, %%a5, 48(%2), %%a5, %%acc0\n\t"
@@ -713,7 +713,7 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
713 "mac.l %%d6, %%a5, 12(%2), %%a5, %%acc0\n\t" 713 "mac.l %%d6, %%a5, 12(%2), %%a5, %%acc0\n\t"
714 "mac.l %%d7, %%a5, %%acc0\n\t" 714 "mac.l %%d7, %%a5, %%acc0\n\t"
715 "movclr.l %%acc0, %0\n\t" 715 "movclr.l %%acc0, %0\n\t"
716 : "=r" (hi0) : "a" (*fo), "a" (*D0ptr) 716 : "=r" (hi0) : "a" (*fo), "a" (*D0ptr)
717 : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "a5"); 717 : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "a5");
718 718
719 pcm[0] = -(hi0 << 3); 719 pcm[0] = -(hi0 << 3);
@@ -731,7 +731,7 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
731 "msac.l %%d5, %%a5, 16(%2), %%a5, %%acc0\n\t" 731 "msac.l %%d5, %%a5, 16(%2), %%a5, %%acc0\n\t"
732 "msac.l %%d6, %%a5, 8(%2), %%a5, %%acc0\n\t" 732 "msac.l %%d6, %%a5, 8(%2), %%a5, %%acc0\n\t"
733 "msac.l %%d7, %%a5, 4(%2), %%a5, %%acc0\n\t" 733 "msac.l %%d7, %%a5, 4(%2), %%a5, %%acc0\n\t"
734 734
735 "movem.l (%3), %%d0-%%d7\n\t" 735 "movem.l (%3), %%d0-%%d7\n\t"
736 "mac.l %%d0, %%a5, 60(%2), %%a5, %%acc0\n\t" 736 "mac.l %%d0, %%a5, 60(%2), %%a5, %%acc0\n\t"
737 "mac.l %%d1, %%a5, 52(%2), %%a5, %%acc0\n\t" 737 "mac.l %%d1, %%a5, 52(%2), %%a5, %%acc0\n\t"
@@ -814,7 +814,7 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
814 "mac.l %%d6, %%a5, 8(%2), %%a5, %%acc0\n\t" 814 "mac.l %%d6, %%a5, 8(%2), %%a5, %%acc0\n\t"
815 "mac.l %%d7, %%a5, %%acc0\n\t" 815 "mac.l %%d7, %%a5, %%acc0\n\t"
816 "movclr.l %%acc0, %0\n\t" 816 "movclr.l %%acc0, %0\n\t"
817 : "=r" (hi0) : "a" (*fo), "a" (*D0ptr) 817 : "=r" (hi0) : "a" (*fo), "a" (*D0ptr)
818 : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "a5"); 818 : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "a5");
819 819
820 pcm[0] = -(hi0 << 3); 820 pcm[0] = -(hi0 << 3);
@@ -1044,7 +1044,7 @@ void synth_full2(mad_fixed_t *pcm, mad_fixed_t (*fo)[8], mad_fixed_t (*fe)[8],
1044 1044
1045/* This performs slower in IRAM on PP502x and there is no space in 1045/* This performs slower in IRAM on PP502x and there is no space in
1046 mpegplayer on the PP5002 */ 1046 mpegplayer on the PP5002 */
1047#if !defined(CPU_PP502x) && !(CONFIG_CPU == PP5002 && defined(MPEGPLAYER)) 1047#if !defined(CPU_PP502x) && !(CONFIG_CPU == PP5002 && defined(MPEGPLAYER)) && !defined(TOSHIBA_GIGABEAT_F)
1048static 1048static
1049void synth_full(struct mad_synth *synth, struct mad_frame const *frame, 1049void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
1050 unsigned int nch, unsigned int ns) ICODE_ATTR; 1050 unsigned int nch, unsigned int ns) ICODE_ATTR;
@@ -1117,7 +1117,7 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
1117 D1ptr += 15; 1117 D1ptr += 15;
1118 fo += 15; 1118 fo += 15;
1119 fe += 15; 1119 fe += 15;
1120 1120
1121 ptr = *(D0ptr + 1); 1121 ptr = *(D0ptr + 1);
1122 PROD_ODD_0(hi, lo, *fo, ptr); 1122 PROD_ODD_0(hi, lo, *fo, ptr);
1123/* 1123/*
@@ -1166,7 +1166,7 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
1166 D1ptr += 15; 1166 D1ptr += 15;
1167 fo += 15; 1167 fo += 15;
1168 fe += 15; 1168 fe += 15;
1169 1169
1170 ptr = *(D0ptr + 1); 1170 ptr = *(D0ptr + 1);
1171/* 1171/*
1172 ML0(hi, lo, (*fo)[0], ptr[ 0]); 1172 ML0(hi, lo, (*fo)[0], ptr[ 0]);
diff --git a/apps/codecs/libmad/synth_full_arm.S b/apps/codecs/libmad/synth_full_arm.S
index b880a7b3c6..3e81f77ec9 100644
--- a/apps/codecs/libmad/synth_full_arm.S
+++ b/apps/codecs/libmad/synth_full_arm.S
@@ -21,7 +21,7 @@
21 21
22/* This performs slower in IRAM on PP502x and there is no space in 22/* This performs slower in IRAM on PP502x and there is no space in
23 mpegplayer on the PP5002 */ 23 mpegplayer on the PP5002 */
24#if defined(CPU_PP502x) || (CONFIG_CPU == PP5002 && defined(MPEGPLAYER)) 24#if defined(CPU_PP502x) || (CONFIG_CPU == PP5002 && defined(MPEGPLAYER)) || defined(TOSHIBA_GIGABEAT_F)
25 .section .text,"ax",%progbits 25 .section .text,"ax",%progbits
26#else 26#else
27 .section .icode,"ax",%progbits 27 .section .icode,"ax",%progbits