* lcm.c (optimize_mode_switching): Revert previous change.
[official-gcc.git] / gcc / config / sh / crtn.asm
blobe064a7b2c42b5fc1582147caa5f8cb201e39b4f9
1 /* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
2 This file was adapted from glibc sources.
4 This file is part of GNU CC.
6 GNU CC 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 2, or (at your option) any
9 later version.
11 In addition to the permissions in the GNU General Public License, the
12 Free Software Foundation gives you unlimited permission to link the
13 compiled version of this file into combinations with other programs,
14 and to distribute those combinations without any restriction coming
15 from the use of this file. (The General Public License restrictions
16 do apply in other respects; for example, they cover modification of
17 the file, and distribution when not linked into a combine
18 executable.)
20 GNU CC is distributed in the hope that it will be useful,
21 but WITHOUT ANY WARRANTY; without even the implied warranty of
22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 General Public License for more details.
25 You should have received a copy of the GNU General Public License
26 along with this program; see the file COPYING. If not, write to
27 the Free Software Foundation, 59 Temple Place - Suite 330,
28 Boston, MA 02111-1307, USA. */
30 /* See an explanation about .init and .fini in crti.asm. */
32 .section .init
33 #if __SHMEDIA__
34 add r14, r63, r15
35 ld.q r15, 0, r18
36 ptabs r18, tr0
37 ld.q r15, 8, r14
38 addi r15, 16, r15
39 blink tr0, r63
40 #elif __SH5__ && ! __SHMEDIA__
41 mov r14,r15
42 lds.l @r14+,pr
43 mov.l @r14,r14
44 rts
45 add #8,r15
46 #else
47 mov r14,r15
48 lds.l @r15+,pr
49 mov.l @r15+,r14
50 rts
51 #ifdef __ELF__
52 mov.l @r15+,r12
53 #else
54 nop
55 #endif
56 #endif /* __SHMEDIA__ */
58 .section .fini
59 #if __SHMEDIA__
60 add r14, r63, r15
61 ld.q r15, 0, r18
62 ptabs r18, tr0
63 ld.q r15, 8, r14
64 addi r15, 16, r15
65 blink tr0, r63
66 #elif __SH5__ && ! __SHMEDIA__
67 mov r14,r15
68 lds.l @r14+,pr
69 mov.l @r14,r14
70 rts
71 add #8,r15
72 #else
73 mov r14,r15
74 lds.l @r15+,pr
75 mov.l @r15+,r14
76 rts
77 #ifdef __ELF__
78 mov.l @r15+,r12
79 #else
80 nop
81 #endif
82 #endif /* __SHMEDIA__ */