1# crtn.S for Sunplus S+CORE
2
3#   Copyright (C) 2005-2018 Free Software Foundation, Inc.
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
7# Free Software Foundation; either version 3, or (at your option) any
8# later version.
9#
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#
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.
18#
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/>.
23
24# This file makes sure that the .init and .fini sections do in
25# fact return.
26
27#ifndef __pic__
28.section .init, "ax", @progbits
29        lw      r3, [r0, 20]
30        addi    r0, 32
31        br      r3
32
33.section .fini, "ax", @progbits
34        lw      r3, [r0, 20]
35        addi    r0, 32
36        br      r3
37#else
38        .set    pic
39.section .init, "ax", @progbits
40        lw      r3, [r0, 20]
41        addi    r0, 32
42        br      r3
43
44        .set    pic
45.section .fini, "ax", @progbits
46        lw      r3, [r0, 20]
47        addi    r0, 32
48        br      r3
49#endif
50
51