OSDN Git Service

5048a99e435a3600a447d62a3e66f863db91e69c
[pf3gnuchains/gcc-fork.git] / gcc / config / score / crtn.asm
1 # crtn.asm for Sunplus S+CORE
2
3 #   Copyright (C) 2005 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 2, or (at your option) any
8 # later version.
9 #
10 # In addition to the permissions in the GNU General Public License, the
11 # Free Software Foundation gives you unlimited permission to link the
12 # compiled version of this file with other programs, and to distribute
13 # those programs without any restriction coming from the use of this
14 # file.  (The General Public License restrictions do apply in other
15 # respects; for example, they cover modification of the file, and
16 # distribution when not linked into another program.)
17 #
18 # This file is distributed in the hope that it will be useful, but
19 # WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 # General Public License for more details.
22 #
23 # You should have received a copy of the GNU General Public License
24 # along with GCC; see the file COPYING.  If not, write to the Free
25 # Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
26 # 02110-1301, USA.
27 #
28 #    As a special exception, if you link this library with files
29 #    compiled with GCC to produce an executable, this does not cause
30 #    the resulting executable to be covered by the GNU General Public License.
31 #    This exception does not however invalidate any other reasons why
32 #    the executable file might be covered by the GNU General Public License.
33 #
34
35 # This file makes sure that the .init and .fini sections do in
36 # fact return.
37
38 #ifndef __pic__
39 .section .init, "ax", @progbits
40         lw      r3, [r0, 20]
41         addi    r0, 32
42         br      r3
43
44 .section .fini, "ax", @progbits
45         lw      r3, [r0, 20]
46         addi    r0, 32
47         br      r3
48 #else
49         .set    pic
50 .section .init, "ax", @progbits
51         lw      r3, [r0, 20]
52         addi    r0, 32
53         br      r3
54
55         .set    pic
56 .section .fini, "ax", @progbits
57         lw      r3, [r0, 20]
58         addi    r0, 32
59         br      r3
60 #endif
61
62