OSDN Git Service

Add the FRV port
[pf3gnuchains/gcc-fork.git] / gcc / config / frv / frvend.c
1 /* Frv initialization file linked after all user modules
2    Copyright (C) 1999, 2000 Free Software Foundation, Inc.
3     Contributed by Red Hat, Inc.
4   
5    This file is part of GNU CC.
6   
7    GNU CC is free software ; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation * either version 2, or (at your option)
10    any later version.
11   
12    GNU CC is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY ; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16   
17    You should have received a copy of the GNU General Public License
18    along with GNU CC; see the file COPYING.  If not, write to
19    the Free Software Foundation, 59 Temple Place - Suite 330,
20    Boston, MA 02111-1307, USA. */
21
22 #include "defaults.h"
23 #include <stddef.h>
24 #include "unwind-dw2-fde.h"
25
26 #ifdef __FRV_UNDERSCORE__
27 #define UNDERSCORE "_"
28 #else
29 #define UNDERSCORE ""
30 #endif
31
32 #define FINI_SECTION_ZERO(SECTION, FLAGS, NAME)                         \
33 __asm__ (".section " SECTION "," FLAGS "\n\t"                           \
34          ".globl   " UNDERSCORE NAME "\n\t"                             \
35          ".type    " UNDERSCORE NAME ",@object\n\t"                     \
36          ".p2align  2\n"                                                \
37          UNDERSCORE NAME ":\n\t"                                        \
38          ".word     0\n\t"                                              \
39          ".previous")
40
41 #define FINI_SECTION(SECTION, FLAGS, NAME)                              \
42 __asm__ (".section " SECTION "," FLAGS "\n\t"                           \
43          ".globl   " UNDERSCORE NAME "\n\t"                             \
44          ".type    " UNDERSCORE NAME ",@object\n\t"                     \
45          ".p2align  2\n"                                                \
46          UNDERSCORE NAME ":\n\t"                                        \
47          ".previous")
48
49 /* End of .ctor/.dtor sections that provides a list of constructors and
50    destructors to run.  */
51
52 FINI_SECTION_ZERO (".ctors", "\"aw\"", "__CTOR_END__");
53 FINI_SECTION_ZERO (".dtors", "\"aw\"", "__DTOR_END__");
54
55 /* End of .eh_frame section that provides all of the exception handling
56    tables.  */
57
58 FINI_SECTION_ZERO (".eh_frame", "\"aw\"", "__FRAME_END__");
59
60 /* End of .rofixup section that provides a list of pointers that we
61    need to adjust.  */
62
63 FINI_SECTION (".rofixup", "\"a\"", "__ROFIXUP_END__");