2009-07-17 Richard Guenther <rguenther@suse.de>
[official-gcc.git] / gcc / config / rs6000 / eabi-ci.asm
blob696f33d394f7af54962f7727be456d367ad1e383
1 /* crti.s for eabi
2 Copyright (C) 1996, 2000, 2008, 2009 Free Software Foundation, Inc.
3 Written By Michael Meissner
5 This file is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 3, or (at your option) any
8 later version.
10 This file is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
24 /* This file just supplies labeled starting points for the .got* and other
25 special sections. It is linked in first before other modules. */
27 .ident "GNU C crti.s"
29 #include <ppc-asm.h>
31 #ifndef __powerpc64__
32 .section ".got","aw"
33 .globl __GOT_START__
34 .type __GOT_START__,@object
35 __GOT_START__:
37 .section ".got1","aw"
38 .globl __GOT1_START__
39 .type __GOT1_START__,@object
40 __GOT1_START__:
42 .section ".got2","aw"
43 .globl __GOT2_START__
44 .type __GOT2_START__,@object
45 __GOT2_START__:
47 .section ".fixup","aw"
48 .globl __FIXUP_START__
49 .type __FIXUP_START__,@object
50 __FIXUP_START__:
52 .section ".ctors","aw"
53 .globl __CTOR_LIST__
54 .type __CTOR_LIST__,@object
55 __CTOR_LIST__:
57 .section ".dtors","aw"
58 .globl __DTOR_LIST__
59 .type __DTOR_LIST__,@object
60 __DTOR_LIST__:
62 .section ".sdata","aw"
63 .globl __SDATA_START__
64 .type __SDATA_START__,@object
65 .weak _SDA_BASE_
66 .type _SDA_BASE_,@object
67 __SDATA_START__:
68 _SDA_BASE_:
70 .section ".sbss","aw",@nobits
71 .globl __SBSS_START__
72 .type __SBSS_START__,@object
73 __SBSS_START__:
75 .section ".sdata2","a"
76 .weak _SDA2_BASE_
77 .type _SDA2_BASE_,@object
78 .globl __SDATA2_START__
79 .type __SDATA2_START__,@object
80 __SDATA2_START__:
81 _SDA2_BASE_:
83 .section ".sbss2","a"
84 .globl __SBSS2_START__
85 .type __SBSS2_START__,@object
86 __SBSS2_START__:
88 .section ".gcc_except_table","aw"
89 .globl __EXCEPT_START__
90 .type __EXCEPT_START__,@object
91 __EXCEPT_START__:
93 .section ".eh_frame","aw"
94 .globl __EH_FRAME_BEGIN__
95 .type __EH_FRAME_BEGIN__,@object
96 __EH_FRAME_BEGIN__:
98 /* Head of __init function used for static constructors. */
99 .section ".init","ax"
100 .align 2
101 FUNC_START(__init)
102 stwu 1,-16(1)
103 mflr 0
104 stw 0,20(1)
106 /* Head of __fini function used for static destructors. */
107 .section ".fini","ax"
108 .align 2
109 FUNC_START(__fini)
110 stwu 1,-16(1)
111 mflr 0
112 stw 0,20(1)
113 #endif