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