diff options
author | Michael Giacomelli <giac2000@hotmail.com> | 2007-07-29 05:21:20 +0000 |
---|---|---|
committer | Michael Giacomelli <giac2000@hotmail.com> | 2007-07-29 05:21:20 +0000 |
commit | f68ab0d497fb2f0f13e31f4d9e29f92f457edc37 (patch) | |
tree | 4400780801bd663692e0b5d2d2fca7f89c8bd79f | |
parent | e64f7e3a6f3019be855469373920198ac19ee654 (diff) | |
download | rockbox-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.S | 2 | ||||
-rw-r--r-- | apps/codecs/libmad/synth.c | 16 | ||||
-rw-r--r-- | apps/codecs/libmad/synth_full_arm.S | 2 |
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 |
588 | static | 588 | static |
589 | void synth_full(struct mad_synth *synth, struct mad_frame const *frame, | 589 | void 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) |
1048 | static | 1048 | static |
1049 | void synth_full(struct mad_synth *synth, struct mad_frame const *frame, | 1049 | void 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 |