summaryrefslogtreecommitdiff
path: root/firmware/target/sh/system-sh.c
diff options
context:
space:
mode:
authorBoris Gjenero <dreamlayers@rockbox.org>2012-10-22 21:30:01 +0200
committerMarcin Bukat <marcin.bukat@gmail.com>2012-10-24 14:02:41 +0200
commitc975de1534f4b4092ad75f85353eec32a9a31b92 (patch)
tree611c581d6ce81b6575f8b20ec8cd795e85ccb298 /firmware/target/sh/system-sh.c
parent8ad8473d814c4ce4db62d35759939f1fae146361 (diff)
downloadrockbox-c975de1534f4b4092ad75f85353eec32a9a31b92.tar.gz
rockbox-c975de1534f4b4092ad75f85353eec32a9a31b92.zip
SH gcc 4.6.3 with link-time optimization, for Archos targets
This is work from FS#12431 synced to current HEAD and slightly tweaked (gcc 4.6.2 -> 4.6.3, binutils 2.21.1 -> 2.22) Change-Id: I76af91e80ac2a9c16a776c7f0a33cc51603bbf9b
Diffstat (limited to 'firmware/target/sh/system-sh.c')
-rw-r--r--firmware/target/sh/system-sh.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/firmware/target/sh/system-sh.c b/firmware/target/sh/system-sh.c
index e054801b57..921d08f7b4 100644
--- a/firmware/target/sh/system-sh.c
+++ b/firmware/target/sh/system-sh.c
@@ -180,6 +180,7 @@ asm (
180 * Must go into the same section as the UIE() handler */ 180 * Must go into the same section as the UIE() handler */
181 181
182 "\t.text\n" 182 "\t.text\n"
183 ".global\t_UIE4\n"
183 "_UIE4:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 184 "_UIE4:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
184 "_UIE5:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 185 "_UIE5:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
185 "_UIE6:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 186 "_UIE6:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
@@ -286,13 +287,17 @@ asm (
286 "_UIE107:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 287 "_UIE107:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
287 "_UIE108:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 288 "_UIE108:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
288 "_UIE109:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 289 "_UIE109:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
289 290 "_UIE:\tmov.l\t__UIE_k,r0\n"
291 "jmp\t@r0\n"
292 "nop\n"
293 ".align\t4\n"
294 "__UIE_k:\t.long\t__UIE\n"
290); 295);
291 296
292extern void UIE4(void); /* needed for calculating the UIE number */ 297extern void UIE4(void); /* needed for calculating the UIE number */
293 298
294void UIE (unsigned int pc) __attribute__((section(".text"))); 299void _UIE (unsigned int pc) __attribute__((section(".text"))) USED_ATTR;
295void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ 300void _UIE (unsigned int pc) /* Unexpected Interrupt or Exception */
296{ 301{
297 unsigned int n; 302 unsigned int n;
298 303