OSDN Git Service

* arm.c (thumb1_output_casesi): New function.
[pf3gnuchains/gcc-fork.git] / 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    2007 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 3, 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 COPYING3.  If not see
21    <http://www.gnu.org/licenses/>.  */
22
23 /* Note - it is important that this definition matches the one in tcoff.h.  */
24 #undef  USER_LABEL_PREFIX
25 #define USER_LABEL_PREFIX "_"
26
27 \f
28 /* Run-time Target Specification.  */
29 #undef  TARGET_VERSION
30 #define TARGET_VERSION fputs (" (ARM/coff)", stderr)
31
32 #undef  TARGET_DEFAULT_FLOAT_ABI
33 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
34
35 #undef  TARGET_DEFAULT
36 #define TARGET_DEFAULT (MASK_APCS_FRAME)
37
38 #ifndef MULTILIB_DEFAULTS
39 #define MULTILIB_DEFAULTS \
40   { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" }
41 #endif
42 \f
43 /* This is COFF, but prefer stabs.  */
44 #define SDB_DEBUGGING_INFO 1
45
46 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
47
48 \f
49 #define TARGET_ASM_FILE_START_APP_OFF true
50
51 /* Switch into a generic section.  */
52 #define TARGET_ASM_NAMED_SECTION  default_coff_asm_named_section
53 \f
54 /* Support the ctors/dtors and other sections.  */
55
56 #undef INIT_SECTION_ASM_OP
57
58 /* Define this macro if jump tables (for `tablejump' insns) should be
59    output in the text section, along with the assembler instructions.
60    Otherwise, the readonly data section is used.  */
61 /* We put ARM and Thumb-2 jump tables in the text section, because it makes
62    the code more efficient, but for Thumb-1 it's better to put them out of
63    band unless we are generating compressed tables.  */
64 #define JUMP_TABLES_IN_TEXT_SECTION                                     \
65    (TARGET_32BIT || (TARGET_THUMB && (optimize_size || flag_pic)))
66
67 #undef  READONLY_DATA_SECTION_ASM_OP
68 #define READONLY_DATA_SECTION_ASM_OP    "\t.section .rdata"
69 #undef  CTORS_SECTION_ASM_OP
70 #define CTORS_SECTION_ASM_OP    "\t.section .ctors,\"x\""
71 #undef  DTORS_SECTION_ASM_OP
72 #define DTORS_SECTION_ASM_OP    "\t.section .dtors,\"x\""
73 \f
74 /* Support the ctors/dtors sections for g++.  */
75
76 /* __CTOR_LIST__ and __DTOR_LIST__ must be defined by the linker script.  */
77 #define CTOR_LISTS_DEFINED_EXTERNALLY
78
79 #undef DO_GLOBAL_CTORS_BODY
80 #undef DO_GLOBAL_DTORS_BODY
81
82 /* The ARM development system defines __main.  */
83 #define NAME__MAIN  "__gccmain"
84 #define SYMBOL__MAIN __gccmain
85
86 #define SUPPORTS_INIT_PRIORITY 0