invoke.texi (SPARC options): Add -mflat.
[gcc.git] / libgcc / config / sparc / sol2-ci.S
1 ! crti.s for solaris 2.0.
2
3 ! Copyright (C) 1992, 2008, 2009, 2011 Free Software Foundation, Inc.
4 ! Written By David Vinayak Henkel-Wallace, June 1992
5 !
6 ! This file is free software; you can redistribute it and/or modify it
7 ! under the terms of the GNU General Public License as published by the
8 ! Free Software Foundation; either version 3, or (at your option) any
9 ! later version.
10 !
11 ! This file is distributed in the hope that it will be useful, but
12 ! WITHOUT ANY WARRANTY; without even the implied warranty of
13 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 ! General Public License for more details.
15 !
16 ! Under Section 7 of GPL version 3, you are granted additional
17 ! permissions described in the GCC Runtime Library Exception, version
18 ! 3.1, as published by the Free Software Foundation.
19 !
20 ! You should have received a copy of the GNU General Public License and
21 ! a copy of the GCC Runtime Library Exception along with this program;
22 ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 ! <http://www.gnu.org/licenses/>.
24
25 ! This file just make a stack frame for the contents of the .fini and
26 ! .init sections. Users may put any desired instructions in those
27 ! sections.
28
29 ! This file is linked in before the Values-Xx.o files and also before
30 ! crtbegin, with which perhaps it should be merged.
31
32 .section ".init"
33 .proc 022
34 .global _init
35 .type _init,#function
36 .align 4
37 _init:
38 #ifdef _FLAT
39 #ifdef __sparcv9
40 stx %i7, [%sp+2167]
41 add %sp, -176, %sp
42 #else
43 st %i7, [%sp+60]
44 add %sp, -96, %sp
45 #endif
46 mov %o7, %i7
47 #else
48 #ifdef __sparcv9
49 save %sp, -176, %sp
50 #else
51 save %sp, -96, %sp
52 #endif
53 #endif
54
55
56 .section ".fini"
57 .proc 022
58 .global _fini
59 .type _fini,#function
60 .align 4
61 _fini:
62 #ifdef _FLAT
63 #ifdef __sparcv9
64 stx %i7, [%sp+2167]
65 add %sp, -176, %sp
66 #else
67 st %i7, [%sp+60]
68 add %sp, -96, %sp
69 #endif
70 mov %o7, %i7
71 #else
72 #ifdef __sparcv9
73 save %sp, -176, %sp
74 #else
75 save %sp, -96, %sp
76 #endif
77 #endif