xref: /netbsd-src/external/gpl3/gcc.old/dist/libgcc/config/bfin/crti.S (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
1/* Specialized code needed to support construction and destruction of
2   file-scope objects in C++ and Java code, and to support exception handling.
3   Copyright (C) 2005-2020 Free Software Foundation, Inc.
4   Contributed by Analog Devices.
5
6This file is part of GCC.
7
8GCC is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GCC is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16GNU General Public License for more details.
17
18Under Section 7 of GPL version 3, you are granted additional
19permissions described in the GCC Runtime Library Exception, version
203.1, as published by the Free Software Foundation.
21
22You should have received a copy of the GNU General Public License and
23a copy of the GCC Runtime Library Exception along with this program;
24see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
25<http://www.gnu.org/licenses/>.  */
26
27/*
28 * This file just supplies function prologues for the .init and .fini
29 * sections.  It is linked in before crtbegin.o.
30 */
31
32	.ident  "GNU C crti.o"
33
34	.section .init
35	.globl  __init
36	.type   __init,@function
37__init:
38#if defined __ID_SHARED_LIB__
39	[--SP] = P5;
40#elif defined __BFIN_FDPIC__
41	[--SP] = P3;
42#endif
43	LINK 12;
44#if defined __ID_SHARED_LIB__
45	P5 = [P5 + _current_shared_library_p5_offset_]
46#endif
47	.section .fini
48	.globl  __fini
49	.type   __fini,@function
50__fini:
51#if defined __ID_SHARED_LIB__
52	[--SP] = P5;
53#elif defined __BFIN_FDPIC__
54	[--SP] = P3;
55#endif
56	LINK 12;
57#if defined __ID_SHARED_LIB__
58	P5 = [P5 + _current_shared_library_p5_offset_]
59#endif
60