OSDN Git Service

98777e831ca93d91069f83b7d623d92c1dc15ea7
[uclinux-h8/uClibc.git] / libc / sysdeps / linux / nios / crt1.S
1 /* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
2
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public License as
7 published by the Free Software Foundation; either version 2 of the
8 License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public
16 License along with the GNU C Library; see the file COPYING.LIB.  If
17 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
18 Cambridge, MA 02139, USA.  */
19
20 #include <features.h>
21 #include <asm/unistd.h>
22 #include "NM_Macros.S"
23 #define __ASSEMBLY__
24 #include <asm/ptrace.h>         /* for REGWIN_SZ */
25
26     .global _start
27     .type   __start,@function
28     .weak   _init
29     .weak   _fini
30     .type   main,@function
31     .type   __uClibc_main,@function
32     .type   __h_errno_location, @function
33     .type   _stdio_init, @function
34     .type   _stdio_term, @function
35
36         .text
37
38 _start: 
39         nop
40         nop
41
42         MOVIA   %o0, main@h
43         lds     %o1,[%sp, (REGWIN_SZ / 4) + 0]  // main's argc
44         lds     %o2,[%sp, (REGWIN_SZ / 4) + 1]  // main's argv
45
46         MOVIA   %o3, _init@h
47         MOVIA   %o4, _fini@h
48         mov     %o5, %i0        /* rtld_fini */
49         mov     %o6, %sp        /* stack_end */
50         MOVIA   %o7, __uClibc_main@h
51
52         call    %o7
53         nop
54
55
56         /* If that didn't kill us, ... */
57 __exit:
58         MOVIP   %g1, __NR_exit
59         trap    63