]>
Commit | Line | Data |
---|---|---|
c21d86e1 | 1 | /* crti.s for eabi |
83ffe9cd | 2 | Copyright (C) 1996-2023 Free Software Foundation, Inc. |
c21d86e1 GK |
3 | Written By Michael Meissner |
4 | ||
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 | |
748086b7 | 7 | Free Software Foundation; either version 3, or (at your option) any |
c21d86e1 GK |
8 | later version. |
9 | ||
c21d86e1 GK |
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. | |
14 | ||
748086b7 JJ |
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. | |
c21d86e1 | 18 | |
748086b7 JJ |
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/>. */ | |
c21d86e1 GK |
23 | |
24 | /* This file just supplies labeled starting points for the .got* and other | |
25 | special sections. It is linked in first before other modules. */ | |
cf27b467 | 26 | |
cf27b467 MM |
27 | .ident "GNU C crti.s" |
28 | ||
c81bebd7 MM |
29 | #include <ppc-asm.h> |
30 | ||
9739c90c | 31 | #ifndef __powerpc64__ |
c81bebd7 | 32 | .section ".got","aw" |
cf27b467 MM |
33 | .globl __GOT_START__ |
34 | .type __GOT_START__,@object | |
cf27b467 | 35 | __GOT_START__: |
cf27b467 | 36 | |
a83cc09f | 37 | .section ".got1","aw" |
cf27b467 MM |
38 | .globl __GOT1_START__ |
39 | .type __GOT1_START__,@object | |
40 | __GOT1_START__: | |
41 | ||
a83cc09f | 42 | .section ".got2","aw" |
cf27b467 MM |
43 | .globl __GOT2_START__ |
44 | .type __GOT2_START__,@object | |
45 | __GOT2_START__: | |
46 | ||
a83cc09f | 47 | .section ".fixup","aw" |
cf27b467 MM |
48 | .globl __FIXUP_START__ |
49 | .type __FIXUP_START__,@object | |
50 | __FIXUP_START__: | |
51 | ||
a83cc09f | 52 | .section ".ctors","aw" |
cf27b467 MM |
53 | .globl __CTOR_LIST__ |
54 | .type __CTOR_LIST__,@object | |
55 | __CTOR_LIST__: | |
56 | ||
a83cc09f | 57 | .section ".dtors","aw" |
2995277c MM |
58 | .globl __DTOR_LIST__ |
59 | .type __DTOR_LIST__,@object | |
cf27b467 | 60 | __DTOR_LIST__: |
a83cc09f MM |
61 | |
62 | .section ".sdata","aw" | |
63 | .globl __SDATA_START__ | |
64 | .type __SDATA_START__,@object | |
6547b720 MM |
65 | .weak _SDA_BASE_ |
66 | .type _SDA_BASE_,@object | |
a83cc09f | 67 | __SDATA_START__: |
6547b720 | 68 | _SDA_BASE_: |
a83cc09f | 69 | |
56d0ac72 | 70 | .section ".sbss","aw",@nobits |
a83cc09f MM |
71 | .globl __SBSS_START__ |
72 | .type __SBSS_START__,@object | |
73 | __SBSS_START__: | |
74 | ||
3a2c1cd8 | 75 | .section ".sdata2","a" |
6547b720 | 76 | .weak _SDA2_BASE_ |
a83cc09f MM |
77 | .type _SDA2_BASE_,@object |
78 | .globl __SDATA2_START__ | |
79 | .type __SDATA2_START__,@object | |
80 | __SDATA2_START__: | |
6547b720 | 81 | _SDA2_BASE_: |
a83cc09f | 82 | |
54ac19a6 | 83 | .section ".sbss2","a" |
a83cc09f MM |
84 | .globl __SBSS2_START__ |
85 | .type __SBSS2_START__,@object | |
86 | __SBSS2_START__: | |
e1f83b4d MM |
87 | |
88 | .section ".gcc_except_table","aw" | |
89 | .globl __EXCEPT_START__ | |
90 | .type __EXCEPT_START__,@object | |
91 | __EXCEPT_START__: | |
c81bebd7 | 92 | |
9ebbca7d GK |
93 | .section ".eh_frame","aw" |
94 | .globl __EH_FRAME_BEGIN__ | |
95 | .type __EH_FRAME_BEGIN__,@object | |
96 | __EH_FRAME_BEGIN__: | |
97 | ||
c21d86e1 | 98 | /* Head of __init function used for static constructors. */ |
c81bebd7 MM |
99 | .section ".init","ax" |
100 | .align 2 | |
101 | FUNC_START(__init) | |
362c63a5 | 102 | stwu 1,-16(1) |
c81bebd7 | 103 | mflr 0 |
362c63a5 | 104 | stw 0,20(1) |
c81bebd7 | 105 | |
c21d86e1 | 106 | /* Head of __fini function used for static destructors. */ |
c81bebd7 MM |
107 | .section ".fini","ax" |
108 | .align 2 | |
109 | FUNC_START(__fini) | |
362c63a5 | 110 | stwu 1,-16(1) |
c81bebd7 | 111 | mflr 0 |
362c63a5 | 112 | stw 0,20(1) |
9739c90c | 113 | #endif |