|
@@ -1,72 +0,0 @@
|
|
-;; Startup code compiant to the ELF CRIS ABI.
|
|
|
|
-;;
|
|
|
|
-;; Highly based on code from glibc.
|
|
|
|
-
|
|
|
|
-#include <sysdep.h>
|
|
|
|
-
|
|
|
|
- .syntax no_register_prefix
|
|
|
|
-
|
|
|
|
- .text
|
|
|
|
- .globl _start
|
|
|
|
- .type _start,@function
|
|
|
|
-
|
|
|
|
-#if defined L_crt0 || ! defined __UCLIBC_CTOR_DTOR__
|
|
|
|
- .type __uClibc_main,@function
|
|
|
|
-#else
|
|
|
|
- .weak _init
|
|
|
|
- .weak _fini
|
|
|
|
- .type __uClibc_start_main,@function
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
- ;; Setup a dummy reference to main so that if an application is linking
|
|
|
|
- ;; when the main() function is in a static library we can be sure that
|
|
|
|
- ;; the main() actually gets linked in.
|
|
|
|
- .type main,@function
|
|
|
|
-
|
|
|
|
-_start:
|
|
|
|
- ;; Clear the frame pointer, to mark the outermost frame.
|
|
|
|
- moveq 0, r8
|
|
|
|
-
|
|
|
|
- move.d [sp],r11
|
|
|
|
- move.d sp,[sp]
|
|
|
|
- move.d sp,r12
|
|
|
|
- addq 4,r12
|
|
|
|
- push r9
|
|
|
|
-
|
|
|
|
-#ifdef __PIC__
|
|
|
|
- move.d pc,r0
|
|
|
|
- sub.d .:GOTOFF,r0
|
|
|
|
- move.d _init:PLTG,r13
|
|
|
|
- add.d r0,r13
|
|
|
|
- move.d _fini:PLTG,r9
|
|
|
|
- add.d r0,r9
|
|
|
|
- move.d main:PLTG,r10
|
|
|
|
- add.d r0,r10
|
|
|
|
-#else
|
|
|
|
- move.d _init,r13
|
|
|
|
- move.d _fini,r9
|
|
|
|
- move.d main,r10
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
- push r9
|
|
|
|
-
|
|
|
|
-#if (defined L_crt1 || defined L_gcrt1) && defined __UCLIBC_CTOR_DTOR__
|
|
|
|
- PLTCALL(__uClibc_start_main)
|
|
|
|
-#else
|
|
|
|
- PLTCALL(__uClibc_main)
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
- ;; Crash if 'exit' returns.
|
|
|
|
- test.d [6502]
|
|
|
|
-0:
|
|
|
|
- ba 0b
|
|
|
|
- nop
|
|
|
|
-
|
|
|
|
-/* Define a symbol for the first piece of initialized data. */
|
|
|
|
- .data
|
|
|
|
- .globl __data_start
|
|
|
|
-__data_start:
|
|
|
|
- .long 0
|
|
|
|
- .weak data_start
|
|
|
|
- data_start = __data_start
|
|
|
|
-
|
|
|