some coverity fixes.
[minix.git] / lib / csu / arch / sparc / crt0.S
blob05b20c54b158c4485f1ad13618c4306750d5726b
1 /* $NetBSD: crt0.S,v 1.1 2010/08/07 18:01:34 joerg Exp $ */
3 /*
4  * Copyright (c) 1998 Christos Zoulas
5  * Copyright (c) 1995 Christopher G. Demetriou
6  * All rights reserved.
7  * 
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. All advertising materials mentioning features or use of this software
17  *    must display the following acknowledgement:
18  *          This product includes software developed for the
19  *          NetBSD Project.  See http://www.NetBSD.org/ for
20  *          information about NetBSD.
21  * 4. The name of the author may not be used to endorse or promote products
22  *    derived from this software without specific prior written permission.
23  * 
24  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
25  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
26  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
27  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
28  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
29  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34  * 
35  * <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>>
36  */
38 #include <machine/asm.h>
40 RCSID("$NetBSD: crt0.S,v 1.1 2010/08/07 18:01:34 joerg Exp $")
42 STRONG_ALIAS(_start,__start)
44 _ENTRY(__start)
45         mov     0, %fp
46         ld      [%sp + 64], %o0         ! get argc
47         add     %sp, 68, %o1            ! get argv
48         sll     %o0, 2, %o2             !
49         add     %o2, 4, %o2             ! envp = argv + (argc << 2) + 4
50         add     %o1, %o2, %o2           !
51         andn    %sp, 7, %sp             ! align
52         sub     %sp, 24, %sp            ! expand to standard stack frame size
53         mov     %g3, %o3
54         mov     %g2, %o4
55         call    ___start
56          mov    %g1, %o5