]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/gcc/config/arm/coff.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / gcc / config / arm / coff.h
1 /* Definitions of target machine for GNU compiler.
2    For ARM with COFF object format.
3    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005
4    Free Software Foundation, Inc.
5    Contributed by Doug Evans (devans@cygnus.com).
6    
7    This file is part of GCC.
8
9    GCC is free software; you can redistribute it and/or modify it
10    under the terms of the GNU General Public License as published
11    by the Free Software Foundation; either version 2, or (at your
12    option) any later version.
13
14    GCC is distributed in the hope that it will be useful, but WITHOUT
15    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
17    License for more details.
18
19    You should have received a copy of the GNU General Public License
20    along with GCC; see the file COPYING.  If not, write to
21    the Free Software Foundation, 51 Franklin Street, Fifth Floor,
22    Boston, MA 02110-1301, USA.  */
23
24 /* Note - it is important that this definition matches the one in tcoff.h.  */
25 #undef  USER_LABEL_PREFIX
26 #define USER_LABEL_PREFIX "_"
27
28 \f
29 /* Run-time Target Specification.  */
30 #undef  TARGET_VERSION
31 #define TARGET_VERSION fputs (" (ARM/coff)", stderr)
32
33 #undef  TARGET_DEFAULT_FLOAT_ABI
34 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
35
36 #undef  TARGET_DEFAULT
37 #define TARGET_DEFAULT (MASK_APCS_FRAME)
38
39 #ifndef MULTILIB_DEFAULTS
40 #define MULTILIB_DEFAULTS \
41   { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" }
42 #endif
43 \f
44 /* This is COFF, but prefer stabs.  */
45 #define SDB_DEBUGGING_INFO 1
46
47 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
48
49 \f
50 #define TARGET_ASM_FILE_START_APP_OFF true
51
52 /* Switch into a generic section.  */
53 #define TARGET_ASM_NAMED_SECTION  default_coff_asm_named_section
54 \f
55 /* Support the ctors/dtors and other sections.  */
56
57 #undef INIT_SECTION_ASM_OP
58
59 /* Define this macro if jump tables (for `tablejump' insns) should be
60    output in the text section, along with the assembler instructions.
61    Otherwise, the readonly data section is used.  */
62 /* We put ARM jump tables in the text section, because it makes the code
63    more efficient, but for Thumb it's better to put them out of band.  */
64 #define JUMP_TABLES_IN_TEXT_SECTION (TARGET_ARM)
65
66 #undef  READONLY_DATA_SECTION_ASM_OP
67 #define READONLY_DATA_SECTION_ASM_OP    "\t.section .rdata"
68 #undef  CTORS_SECTION_ASM_OP
69 #define CTORS_SECTION_ASM_OP    "\t.section .ctors,\"x\""
70 #undef  DTORS_SECTION_ASM_OP
71 #define DTORS_SECTION_ASM_OP    "\t.section .dtors,\"x\""
72 \f
73 /* Support the ctors/dtors sections for g++.  */
74
75 /* __CTOR_LIST__ and __DTOR_LIST__ must be defined by the linker script.  */
76 #define CTOR_LISTS_DEFINED_EXTERNALLY
77
78 #undef DO_GLOBAL_CTORS_BODY
79 #undef DO_GLOBAL_DTORS_BODY
80
81 /* The ARM development system defines __main.  */
82 #define NAME__MAIN  "__gccmain"
83 #define SYMBOL__MAIN __gccmain
84
85 #define SUPPORTS_INIT_PRIORITY 0