xref: /dflybsd-src/contrib/gcc-4.7/gcc/target-def.h (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
1*e4b17023SJohn Marino /* Default initializers for a generic GCC target.
2*e4b17023SJohn Marino    Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
3*e4b17023SJohn Marino    2011 Free Software Foundation, Inc.
4*e4b17023SJohn Marino 
5*e4b17023SJohn Marino    This program is free software; you can redistribute it and/or modify it
6*e4b17023SJohn Marino    under the terms of the GNU General Public License as published by the
7*e4b17023SJohn Marino    Free Software Foundation; either version 3, or (at your option) any
8*e4b17023SJohn Marino    later version.
9*e4b17023SJohn Marino 
10*e4b17023SJohn Marino    This program is distributed in the hope that it will be useful,
11*e4b17023SJohn Marino    but WITHOUT ANY WARRANTY; without even the implied warranty of
12*e4b17023SJohn Marino    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*e4b17023SJohn Marino    GNU General Public License for more details.
14*e4b17023SJohn Marino 
15*e4b17023SJohn Marino    You should have received a copy of the GNU General Public License
16*e4b17023SJohn Marino    along with this program; see the file COPYING3.  If not see
17*e4b17023SJohn Marino    <http://www.gnu.org/licenses/>.
18*e4b17023SJohn Marino 
19*e4b17023SJohn Marino    In other words, you are welcome to use, share and improve this program.
20*e4b17023SJohn Marino    You are forbidden to forbid anyone else to use, share and improve
21*e4b17023SJohn Marino    what you give them.   Help stamp out software-hoarding!  */
22*e4b17023SJohn Marino 
23*e4b17023SJohn Marino /* See target.def for a description of what this file contains and how to
24*e4b17023SJohn Marino    use it.
25*e4b17023SJohn Marino 
26*e4b17023SJohn Marino    We want to have non-NULL default definitions of all hook functions,
27*e4b17023SJohn Marino    even if they do nothing.  */
28*e4b17023SJohn Marino 
29*e4b17023SJohn Marino /* Note that if one of these macros must be defined in an OS .h file
30*e4b17023SJohn Marino    rather than the .c file, then we need to wrap the default
31*e4b17023SJohn Marino    definition in a #ifndef, since files include tm.h before this one.  */
32*e4b17023SJohn Marino 
33*e4b17023SJohn Marino #define TARGET_ASM_ALIGNED_HI_OP "\t.short\t"
34*e4b17023SJohn Marino #define TARGET_ASM_ALIGNED_SI_OP "\t.long\t"
35*e4b17023SJohn Marino #define TARGET_ASM_ALIGNED_DI_OP NULL
36*e4b17023SJohn Marino #define TARGET_ASM_ALIGNED_TI_OP NULL
37*e4b17023SJohn Marino 
38*e4b17023SJohn Marino /* GAS and SYSV4 assemblers accept these.  */
39*e4b17023SJohn Marino #if defined (OBJECT_FORMAT_ELF)
40*e4b17023SJohn Marino #define TARGET_ASM_UNALIGNED_HI_OP "\t.2byte\t"
41*e4b17023SJohn Marino #define TARGET_ASM_UNALIGNED_SI_OP "\t.4byte\t"
42*e4b17023SJohn Marino #define TARGET_ASM_UNALIGNED_DI_OP "\t.8byte\t"
43*e4b17023SJohn Marino #define TARGET_ASM_UNALIGNED_TI_OP NULL
44*e4b17023SJohn Marino #else
45*e4b17023SJohn Marino #define TARGET_ASM_UNALIGNED_HI_OP NULL
46*e4b17023SJohn Marino #define TARGET_ASM_UNALIGNED_SI_OP NULL
47*e4b17023SJohn Marino #define TARGET_ASM_UNALIGNED_DI_OP NULL
48*e4b17023SJohn Marino #define TARGET_ASM_UNALIGNED_TI_OP NULL
49*e4b17023SJohn Marino #endif /* OBJECT_FORMAT_ELF */
50*e4b17023SJohn Marino 
51*e4b17023SJohn Marino #if !defined(TARGET_ASM_CONSTRUCTOR) && !defined(USE_COLLECT2)
52*e4b17023SJohn Marino # ifdef CTORS_SECTION_ASM_OP
53*e4b17023SJohn Marino #  define TARGET_ASM_CONSTRUCTOR default_ctor_section_asm_out_constructor
54*e4b17023SJohn Marino # else
55*e4b17023SJohn Marino #  ifdef TARGET_ASM_NAMED_SECTION
56*e4b17023SJohn Marino #   define TARGET_ASM_CONSTRUCTOR default_named_section_asm_out_constructor
57*e4b17023SJohn Marino #  else
58*e4b17023SJohn Marino #   define TARGET_ASM_CONSTRUCTOR default_stabs_asm_out_constructor
59*e4b17023SJohn Marino #  endif
60*e4b17023SJohn Marino # endif
61*e4b17023SJohn Marino #endif
62*e4b17023SJohn Marino 
63*e4b17023SJohn Marino #if !defined(TARGET_ASM_DESTRUCTOR) && !defined(USE_COLLECT2)
64*e4b17023SJohn Marino # ifdef DTORS_SECTION_ASM_OP
65*e4b17023SJohn Marino #  define TARGET_ASM_DESTRUCTOR default_dtor_section_asm_out_destructor
66*e4b17023SJohn Marino # else
67*e4b17023SJohn Marino #  ifdef TARGET_ASM_NAMED_SECTION
68*e4b17023SJohn Marino #   define TARGET_ASM_DESTRUCTOR default_named_section_asm_out_destructor
69*e4b17023SJohn Marino #  else
70*e4b17023SJohn Marino #   define TARGET_ASM_DESTRUCTOR default_stabs_asm_out_destructor
71*e4b17023SJohn Marino #  endif
72*e4b17023SJohn Marino # endif
73*e4b17023SJohn Marino #endif
74*e4b17023SJohn Marino 
75*e4b17023SJohn Marino #if !defined(TARGET_HAVE_CTORS_DTORS)
76*e4b17023SJohn Marino # if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR)
77*e4b17023SJohn Marino # define TARGET_HAVE_CTORS_DTORS true
78*e4b17023SJohn Marino # endif
79*e4b17023SJohn Marino #endif
80*e4b17023SJohn Marino 
81*e4b17023SJohn Marino #ifndef TARGET_TERMINATE_DW2_EH_FRAME_INFO
82*e4b17023SJohn Marino #ifdef EH_FRAME_SECTION_NAME
83*e4b17023SJohn Marino #define TARGET_TERMINATE_DW2_EH_FRAME_INFO false
84*e4b17023SJohn Marino #endif
85*e4b17023SJohn Marino #endif
86*e4b17023SJohn Marino 
87*e4b17023SJohn Marino #if !defined(TARGET_ASM_OUTPUT_ANCHOR) && !defined(ASM_OUTPUT_DEF)
88*e4b17023SJohn Marino #define TARGET_ASM_OUTPUT_ANCHOR NULL
89*e4b17023SJohn Marino #endif
90*e4b17023SJohn Marino 
91*e4b17023SJohn Marino #define TARGET_ASM_ALIGNED_INT_OP				\
92*e4b17023SJohn Marino 		       {TARGET_ASM_ALIGNED_HI_OP,		\
93*e4b17023SJohn Marino 			TARGET_ASM_ALIGNED_SI_OP,		\
94*e4b17023SJohn Marino 			TARGET_ASM_ALIGNED_DI_OP,		\
95*e4b17023SJohn Marino 			TARGET_ASM_ALIGNED_TI_OP}
96*e4b17023SJohn Marino 
97*e4b17023SJohn Marino #define TARGET_ASM_UNALIGNED_INT_OP				\
98*e4b17023SJohn Marino 		       {TARGET_ASM_UNALIGNED_HI_OP,		\
99*e4b17023SJohn Marino 			TARGET_ASM_UNALIGNED_SI_OP,		\
100*e4b17023SJohn Marino 			TARGET_ASM_UNALIGNED_DI_OP,		\
101*e4b17023SJohn Marino 			TARGET_ASM_UNALIGNED_TI_OP}
102*e4b17023SJohn Marino 
103*e4b17023SJohn Marino #if !defined (TARGET_FUNCTION_INCOMING_ARG)
104*e4b17023SJohn Marino #define TARGET_FUNCTION_INCOMING_ARG TARGET_FUNCTION_ARG
105*e4b17023SJohn Marino #endif
106*e4b17023SJohn Marino 
107*e4b17023SJohn Marino #include "target-hooks-def.h"
108*e4b17023SJohn Marino 
109*e4b17023SJohn Marino #include "hooks.h"
110*e4b17023SJohn Marino #include "targhooks.h"
111