blob: 7c4c3bc64bd22ac48972ccd2bdaf7473a64256b7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/* Any assmbly language/system dependent hacks needed to setup boot1.c so it
* will work as expected and cope with whatever platform specific wierdness is
* needed for this architecture.
*/
asm("" \
" .section .text..SHmedia32,\"ax\"\n" \
" .globl _dl_boot\n" \
" .type _dl_boot, @function\n" \
" .align 5\n" \
"_dl_boot:\n" \
" ! Set r12 to point to GOT\n" \
" movi (((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ3-.)) >> 16) & 65535), r12\n" \
" shori ((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ3-.)) & 65535), r12\n" \
".LZZZ3:\n" \
" ptrel/u r12, tr0\n" \
" gettr tr0, r12 ! GOT address\n" \
" add r18, r63, r11 ! save return address - needed?\n" \
" add r15, r63, r2 ! arg = stack pointer\n" \
" pt _dl_boot2, tr0 ! should work even if PIC\n" \
" blink tr0, r18 ! call _dl_boot2 - user EP is in r2\n" \
);
|