1# crtn.s for sysv4
2
3# Copyright (C) 1996-2019 Free Software Foundation, Inc.
4#   Written By Michael Meissner
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 supplies labeled ending points for the .got* and other
26# special sections.  It is linked in last after other modules.
27
28	.ident	"GNU C scrtn.s"
29
30#ifndef __powerpc64__
31# Default versions of exception handling register/deregister
32	.weak	_ex_register
33	.weak	_ex_deregister
34	.set	_ex_register,0
35	.set	_ex_deregister,0
36
37# End list of C++ constructors
38	.section ".ctors","aw"
39	.globl	__CTOR_END__
40	.type	__CTOR_END__,@object
41__CTOR_END__:
42
43# End list of C++ destructors
44	.section ".dtors","aw"
45	.weak	__DTOR_END__
46	.type	__DTOR_END__,@object
47__DTOR_END__:
48
49	.section ".text"
50	.globl	_ex_text1
51_ex_text1:
52
53	.section ".exception_ranges","aw"
54	.globl	_ex_range1
55_ex_range1:
56
57# Tail of _init used for static constructors
58	.section ".init","ax"
59	lwz	%r0,16(%r1)
60	lwz	%r31,12(%r1)
61	mtlr	%r0
62	addi	%r1,%r1,16
63	blr
64
65# Tail of _fini used for static destructors
66	.section ".fini","ax"
67	lwz	%r0,16(%r1)
68	lwz	%r31,12(%r1)
69	mtlr	%r0
70	addi	%r1,%r1,16
71	blr
72#endif
73