diff options
Diffstat (limited to 'libgloss/sparc/erc32-crt0.S')
-rw-r--r-- | libgloss/sparc/erc32-crt0.S | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/libgloss/sparc/erc32-crt0.S b/libgloss/sparc/erc32-crt0.S deleted file mode 100644 index 8f8b1ea9c..000000000 --- a/libgloss/sparc/erc32-crt0.S +++ /dev/null @@ -1,75 +0,0 @@ -/* - * This is based on the file srt0.s provided with the binary - * distribution of the SPARC Instruction Simulator (SIS) found - * at ftp://ftp.estec.esa.nl/pub/ws/wsd/erc32. - */ - -#include "asm.h" - - .data - .align 8 -SYM(environ): - .long 0 - - .text - - .globl SYM(start) -SYM(start): - sethi %hi(__stack), %g1 - or %g1,%lo(__stack),%g1 - mov %g1, %sp ! set the stack pointer - mov %sp, %fp - - /* clear the bss */ - sethi %hi(__bss_start),%g2 - or %g2,%lo(__bss_start),%g2 ! start of bss - sethi %hi(_end),%g3 - or %g3,%lo(_end),%g3 ! end of bss - mov %g0,%g1 ! so std has two zeros -zerobss: - std %g0,[%g2] - add %g2,8,%g2 - cmp %g2,%g3 - bleu,a zerobss - nop - - /* move data segment to proper location */ - -#if 0 -relocd: - set (_endtext),%g2 ! g2 = start of data in aout file - set (_environ),%g4 ! g4 = start of where data should go - set (_edata),%g3 ! g3 = end of where data should go - subcc %g3, %g4, %g5 ! g5 = length of data - - subcc %g4, %g2, %g0 ! need to relocate data ? - ble initok - ld [%g4], %g6 - subcc %g6, 1, %g0 - be initok -mvdata: - subcc %g5, 8, %g5 - ldd [%g2 + %g5], %g6 - bg mvdata - std %g6, [%g4 + %g5] - -initok: -#endif - - call SYM(__fix_ctors) - nop - call SYM(main) - nop - - /* call exit from the C library so atexit gets called, and the - * C++ destructors get run. This calls our exit routine below * when it's done. - */ - call SYM(exit) - nop - - .globl SYM(_exit) -SYM(_exit): - set 0xdeadd00d, %o1 ! Magic number for simulator. - ta 0 ! Halt if _main returns ... - nop - |