diff options
Diffstat (limited to 'newlib/libc/sys/arc/crt0.S')
-rw-r--r-- | newlib/libc/sys/arc/crt0.S | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/newlib/libc/sys/arc/crt0.S b/newlib/libc/sys/arc/crt0.S deleted file mode 100644 index 346339774..000000000 --- a/newlib/libc/sys/arc/crt0.S +++ /dev/null @@ -1,75 +0,0 @@ -; ARC start up file -; In the absence of a custom linker script, go with something simple. -; We do not support passing arguments to "main", but this is an embedded -; system anyway. -; -; We call init/fini here without cpu prefixes because there is always -; only one .init/.fini section per image. - - .section .text - .align 4 - - .global start -start: - - mov sp,end ; Round "sp" up to page after "end". - add sp,sp,4095 - and sp,sp,-4096 - - ld r8,[stack_size] ; Add stack size to "sp". - add sp,sp,r8 - - st sp,[sbrk_start] ; Initialize malloc heap. - st sp,[sbrk_loc] - - sub sp,sp,16 ; callee expects 16 bytes already "pushed". - mov fp,0 ; Top of stack frame indicator. - - mov r0,edata ; Zero bss. - mov r2,end - sub r2,r2,r0 - mov r1,0 - -#ifdef __base__ - bl.nd _memset - bl.nd init ; .init section entry point. - mov r0,%st(fini) ; .fini section entry point. - bl.nd _atexit - mov r0,0 ; argc - mov r1,0 ; argv - bl.nd _main - bl.nd _exit -#endif - -#ifdef __host__ - bl.nd _host_memset - bl.nd init ; .init section entry point. - mov r0,%st(fini) ; .fini section entry point. - bl.nd _host_atexit - mov r0,0 ; argc - mov r1,0 ; argv - bl.nd _host_main - bl.nd _host_exit -#endif - -#ifdef __graphics__ - bl.nd _graphics_memset - bl.nd init ; .init section entry point. - mov r0,%st(fini) ; .fini section entry point. - bl.nd _graphics_atexit - mov r0,0 ; argc - mov r1,0 ; argv - bl.nd _graphics_main - bl.nd _graphics_exit -#endif - -#ifdef __audio__ - bl.nd _audio_memset - bl.nd init ; .init section entry point. - mov r0,%st(fini) ; .fini section entry point. - bl.nd _audio_atexit - mov r0,0 ; argc - mov r1,0 ; argv - bl.nd _audio_main - bl.nd _audio_exit -#endif |