diff options
author | Boris Gjenero <dreamlayers@rockbox.org> | 2012-10-22 21:30:01 +0200 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2012-10-24 14:02:41 +0200 |
commit | c975de1534f4b4092ad75f85353eec32a9a31b92 (patch) | |
tree | 611c581d6ce81b6575f8b20ec8cd795e85ccb298 /firmware/target/sh/system-sh.c | |
parent | 8ad8473d814c4ce4db62d35759939f1fae146361 (diff) | |
download | rockbox-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.c | 11 |
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 | ||
292 | extern void UIE4(void); /* needed for calculating the UIE number */ | 297 | extern void UIE4(void); /* needed for calculating the UIE number */ |
293 | 298 | ||
294 | void UIE (unsigned int pc) __attribute__((section(".text"))); | 299 | void _UIE (unsigned int pc) __attribute__((section(".text"))) USED_ATTR; |
295 | void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ | 300 | void _UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ |
296 | { | 301 | { |
297 | unsigned int n; | 302 | unsigned int n; |
298 | 303 | ||