summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2006-04-25 22:40:55 +0000
committerJens Arnold <amiconn@rockbox.org>2006-04-25 22:40:55 +0000
commit96dce1d3b7d5bfe633348faa0df95dbee844fb6b (patch)
tree7cdb1684209a5c842100d0a7d761c7953d3a751b /firmware
parent5398f720f010ab15504f85ffb4e82c2d43e3ed36 (diff)
downloadrockbox-96dce1d3b7d5bfe633348faa0df95dbee844fb6b.tar.gz
rockbox-96dce1d3b7d5bfe633348faa0df95dbee844fb6b.tar.bz2
rockbox-96dce1d3b7d5bfe633348faa0df95dbee844fb6b.zip
SH targets: Protect against a gcc 3.3.x bug triggered by -O2 or -Os, in preparation for switching to -Os. Workaround could be removed again for gcc 3.4.x.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9809 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/mp3_playback.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/mp3_playback.c b/firmware/mp3_playback.c
index 01b538a4a4..dd0a403362 100644
--- a/firmware/mp3_playback.c
+++ b/firmware/mp3_playback.c
@@ -219,6 +219,10 @@ void IRQ3(void) /* PA15: MAS demand IRQ */
else
#endif
postpone_dma_tick();
+
+ /* Workaround for sh-elf-gcc 3.3.x bug with -O2 or -Os and ISRs
+ * (invalid cross-jump optimisation) */
+ asm volatile ("");
}
#endif /* #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */