diff options
author | Mystery Man <unknown@mandriva.org> | 2003-10-29 16:07:11 +0000 |
---|---|---|
committer | Mystery Man <unknown@mandriva.org> | 2003-10-29 16:07:11 +0000 |
commit | fa40f30b4253b1e05c46cc5e0c111176825b7623 (patch) | |
tree | 76cf2d26c0ce0ee7c6a2c1a1a2b65bc4d8e33029 /mdk-stage1/dietlibc/sparc/start.S | |
parent | 327bd24f8e4291bd1882de1990dd7339f781a9cb (diff) | |
download | drakx-fa40f30b4253b1e05c46cc5e0c111176825b7623.tar drakx-fa40f30b4253b1e05c46cc5e0c111176825b7623.tar.gz drakx-fa40f30b4253b1e05c46cc5e0c111176825b7623.tar.bz2 drakx-fa40f30b4253b1e05c46cc5e0c111176825b7623.tar.xz drakx-fa40f30b4253b1e05c46cc5e0c111176825b7623.zip |
This commit was manufactured by cvs2svn to create tag 'Corpo_2_1_1'.Corpo_2_1_1
Diffstat (limited to 'mdk-stage1/dietlibc/sparc/start.S')
-rw-r--r-- | mdk-stage1/dietlibc/sparc/start.S | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/mdk-stage1/dietlibc/sparc/start.S b/mdk-stage1/dietlibc/sparc/start.S index e948aaddc..c6408ee8f 100644 --- a/mdk-stage1/dietlibc/sparc/start.S +++ b/mdk-stage1/dietlibc/sparc/start.S @@ -1,46 +1,50 @@ -#include "start.h" - -#ifdef __sparc__ - .section ".text" - .align 4 - .global _start - .type _start,@function + .section ".text" + .align 4 + .global _start + .type _start,@function _start: - /* Terminate the stack frame, and reserve space for functions to - drop their arguments. */ - mov %g0, %fp - sub %sp, 6*4, %sp +/* Terminate the stack frame, and reserve space for functions to + drop their arguments. */ + mov %g0, %fp + sub %sp, 6*4, %sp - /* Extract the arguments and environment as encoded on the stack. The - argument info starts after one register window (16 words) past the SP. */ - ld [%sp+22*4], %o0 - add %sp, 23*4, %o1 +/* Extract the arguments and environment as encoded on the stack. The + argument info starts after one register window (16 words) past the SP. */ + ld [%sp+22*4], %o0 + add %sp, 23*4, %o1 add %o1, %o0, %o2 add %o2, %o0, %o2 add %o2, %o0, %o2 add %o2, %o0, %o2 add %o2, 4, %o2 - sethi %hi(environ), %o3 - or %o3, %lo(environ), %o3 + sethi %hi(environ), %o3 + or %o3, %lo(environ), %o3 st %o2, [%o3] - /* When starting a binary via the dynamic linker, %g1 contains the - address of the shared library termination function, which will be - registered with atexit(). If we are statically linked, this will - be NULL. */ +/* When starting a binary via the dynamic linker, %g1 contains the + address of the shared library termination function, which will be + registered with atexit(). If we are statically linked, this will + be NULL. */ - /* Let libc do the rest of the initialization, and call main. */ +/* Let libc do the rest of the initialization, and call main. */ +#ifdef WANT_DYNAMIC + call dyn_start +#else call main - mov %g1, %o5 +#endif + mov %g1, %o3 b exit mov %o0, %i0 - /* Die very horribly if exit returns. */ - unimp +/* Die very horribly if exit returns. */ - .size _start, .-_start -#endif +/* here we go and "reuse" the return for weak-void functions */ +#include "dietuglyweaks.h" + ret + nop + + .size _start, .-_start |