]>
Commit | Line | Data |
---|---|---|
a767736d | 1 | /* Default initializers for a generic GCC target. |
b7119a5a | 2 | Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
a767736d | 3 | |
4 | This program is free software; you can redistribute it and/or modify it | |
5 | under the terms of the GNU General Public License as published by the | |
6 | Free Software Foundation; either version 2, or (at your option) any | |
7 | later version. | |
8 | ||
9 | This program is distributed in the hope that it will be useful, | |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | GNU General Public License for more details. | |
13 | ||
14 | You should have received a copy of the GNU General Public License | |
15 | along with this program; if not, write to the Free Software | |
67ce556b | 16 | Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
a767736d | 17 | |
18 | In other words, you are welcome to use, share and improve this program. | |
19 | You are forbidden to forbid anyone else to use, share and improve | |
20 | what you give them. Help stamp out software-hoarding! */ | |
21 | ||
02c8b767 | 22 | /* See target.h for a description of what this file contains and how to |
ddcade82 | 23 | use it. |
a767736d | 24 | |
ddcade82 | 25 | We want to have non-NULL default definitions of all hook functions, |
26 | even if they do nothing. */ | |
27 | ||
02c8b767 | 28 | /* Note that if one of these macros must be defined in an OS .h file |
29 | rather than the .c file, then we need to wrap the default | |
30 | definition in a #ifndef, since files include tm.h before this one. */ | |
31 | ||
85ae73e8 | 32 | /* Assembler output. */ |
11ff5d0d | 33 | #define TARGET_ASM_OPEN_PAREN "(" |
34 | #define TARGET_ASM_CLOSE_PAREN ")" | |
58356836 | 35 | #define TARGET_ASM_BYTE_OP "\t.byte\t" |
36 | ||
37 | #define TARGET_ASM_ALIGNED_HI_OP "\t.short\t" | |
38 | #define TARGET_ASM_ALIGNED_SI_OP "\t.long\t" | |
39 | #define TARGET_ASM_ALIGNED_DI_OP NULL | |
40 | #define TARGET_ASM_ALIGNED_TI_OP NULL | |
41 | ||
42 | /* GAS and SYSV4 assemblers accept these. */ | |
4bfa9136 | 43 | #if defined (OBJECT_FORMAT_ELF) |
58356836 | 44 | #define TARGET_ASM_UNALIGNED_HI_OP "\t.2byte\t" |
45 | #define TARGET_ASM_UNALIGNED_SI_OP "\t.4byte\t" | |
46 | #define TARGET_ASM_UNALIGNED_DI_OP "\t.8byte\t" | |
47 | #define TARGET_ASM_UNALIGNED_TI_OP NULL | |
48 | #else | |
49 | #define TARGET_ASM_UNALIGNED_HI_OP NULL | |
50 | #define TARGET_ASM_UNALIGNED_SI_OP NULL | |
51 | #define TARGET_ASM_UNALIGNED_DI_OP NULL | |
52 | #define TARGET_ASM_UNALIGNED_TI_OP NULL | |
4bfa9136 | 53 | #endif /* OBJECT_FORMAT_ELF */ |
58356836 | 54 | |
55 | #define TARGET_ASM_INTEGER default_assemble_integer | |
56 | ||
67c1e638 | 57 | #ifndef TARGET_ASM_GLOBALIZE_LABEL |
58 | #define TARGET_ASM_GLOBALIZE_LABEL default_globalize_label | |
59 | #endif | |
2f9fc8ef | 60 | |
61 | #ifndef TARGET_ASM_EMIT_UNWIND_LABEL | |
62 | #define TARGET_ASM_EMIT_UNWIND_LABEL default_emit_unwind_label | |
63 | #endif | |
64 | ||
8ec87476 | 65 | #ifndef TARGET_UNWIND_EMIT |
66 | #define TARGET_UNWIND_EMIT default_unwind_emit | |
67 | #endif | |
68 | ||
805e22b2 | 69 | #ifndef TARGET_ASM_INTERNAL_LABEL |
70 | #define TARGET_ASM_INTERNAL_LABEL default_internal_label | |
71 | #endif | |
67c1e638 | 72 | |
1774763d | 73 | #ifndef TARGET_ARM_TTYPE |
74 | #define TARGET_ASM_TTYPE hook_bool_rtx_false | |
75 | #endif | |
76 | ||
2532673e | 77 | #ifndef TARGET_ASM_ASSEMBLE_VISIBILITY |
cdf91bb7 | 78 | #define TARGET_ASM_ASSEMBLE_VISIBILITY default_assemble_visibility |
2532673e | 79 | #endif |
80 | ||
17d9b0c3 | 81 | #define TARGET_ASM_FUNCTION_PROLOGUE default_function_pro_epilogue |
82 | #define TARGET_ASM_FUNCTION_EPILOGUE default_function_pro_epilogue | |
85ae73e8 | 83 | #define TARGET_ASM_FUNCTION_END_PROLOGUE no_asm_to_stream |
84 | #define TARGET_ASM_FUNCTION_BEGIN_EPILOGUE no_asm_to_stream | |
17d9b0c3 | 85 | |
52470889 | 86 | #ifndef TARGET_ASM_SELECT_SECTION |
87 | #define TARGET_ASM_SELECT_SECTION default_select_section | |
88 | #endif | |
89 | ||
90 | #ifndef TARGET_ASM_UNIQUE_SECTION | |
91 | #define TARGET_ASM_UNIQUE_SECTION default_unique_section | |
92 | #endif | |
93 | ||
76aec42f | 94 | #ifndef TARGET_ASM_FUNCTION_RODATA_SECTION |
95 | #define TARGET_ASM_FUNCTION_RODATA_SECTION default_function_rodata_section | |
96 | #endif | |
97 | ||
bbfbe351 | 98 | #ifndef TARGET_ASM_SELECT_RTX_SECTION |
99 | #define TARGET_ASM_SELECT_RTX_SECTION default_select_rtx_section | |
100 | #endif | |
101 | ||
01d15dc5 | 102 | #if !defined(TARGET_ASM_CONSTRUCTOR) && !defined(USE_COLLECT2) |
103 | # ifdef CTORS_SECTION_ASM_OP | |
104 | # define TARGET_ASM_CONSTRUCTOR default_ctor_section_asm_out_constructor | |
105 | # else | |
106 | # ifdef TARGET_ASM_NAMED_SECTION | |
107 | # define TARGET_ASM_CONSTRUCTOR default_named_section_asm_out_constructor | |
108 | # else | |
109 | # define TARGET_ASM_CONSTRUCTOR default_stabs_asm_out_constructor | |
110 | # endif | |
111 | # endif | |
112 | #endif | |
113 | ||
114 | #if !defined(TARGET_ASM_DESTRUCTOR) && !defined(USE_COLLECT2) | |
115 | # ifdef DTORS_SECTION_ASM_OP | |
116 | # define TARGET_ASM_DESTRUCTOR default_dtor_section_asm_out_destructor | |
117 | # else | |
118 | # ifdef TARGET_ASM_NAMED_SECTION | |
119 | # define TARGET_ASM_DESTRUCTOR default_named_section_asm_out_destructor | |
120 | # else | |
121 | # define TARGET_ASM_DESTRUCTOR default_stabs_asm_out_destructor | |
122 | # endif | |
123 | # endif | |
124 | #endif | |
125 | ||
c6933ba6 | 126 | #define TARGET_ASM_OUTPUT_MI_THUNK NULL |
eb344f43 | 127 | #define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_false |
c6933ba6 | 128 | |
e6eccdb3 | 129 | #if !defined(TARGET_HAVE_CTORS_DTORS) |
130 | # if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR) | |
131 | # define TARGET_HAVE_CTORS_DTORS true | |
132 | # else | |
133 | # define TARGET_HAVE_CTORS_DTORS false | |
134 | # define TARGET_ASM_CONSTRUCTOR NULL | |
135 | # define TARGET_ASM_DESTRUCTOR NULL | |
136 | # endif | |
01d15dc5 | 137 | #endif |
138 | ||
2f14b1f9 | 139 | #ifndef TARGET_ASM_INIT_SECTIONS |
140 | #define TARGET_ASM_INIT_SECTIONS hook_void_void | |
141 | #endif | |
142 | ||
2cb4ac60 | 143 | #ifdef TARGET_ASM_NAMED_SECTION |
144 | #define TARGET_HAVE_NAMED_SECTIONS true | |
145 | #else | |
146 | #define TARGET_ASM_NAMED_SECTION default_no_named_section | |
147 | #define TARGET_HAVE_NAMED_SECTIONS false | |
148 | #endif | |
149 | ||
1606e68a | 150 | #ifndef TARGET_INVALID_WITHIN_DOLOOP |
151 | #define TARGET_INVALID_WITHIN_DOLOOP default_invalid_within_doloop | |
7dfa5ce3 | 152 | #endif |
153 | ||
6c1e551f | 154 | #ifndef TARGET_VALID_DLLIMPORT_ATTRIBUTE_P |
155 | #define TARGET_VALID_DLLIMPORT_ATTRIBUTE_P hook_bool_tree_true | |
156 | #endif | |
157 | ||
2a6f0f81 | 158 | #ifndef TARGET_HAVE_TLS |
159 | #define TARGET_HAVE_TLS false | |
160 | #endif | |
161 | ||
9292e3be | 162 | #ifndef TARGET_HAVE_SRODATA_SECTION |
163 | #define TARGET_HAVE_SRODATA_SECTION false | |
164 | #endif | |
165 | ||
a08b74c8 | 166 | #ifndef TARGET_TERMINATE_DW2_EH_FRAME_INFO |
167 | #ifdef EH_FRAME_SECTION_NAME | |
168 | #define TARGET_TERMINATE_DW2_EH_FRAME_INFO false | |
169 | #else | |
170 | #define TARGET_TERMINATE_DW2_EH_FRAME_INFO true | |
171 | #endif | |
172 | #endif | |
173 | ||
9754a2f0 | 174 | #define TARGET_DWARF_REGISTER_SPAN hook_rtx_rtx_null |
175 | ||
92c473b8 | 176 | #ifndef TARGET_ASM_FILE_START |
177 | #define TARGET_ASM_FILE_START default_file_start | |
178 | #endif | |
179 | ||
f6940372 | 180 | #ifndef TARGET_ASM_FILE_END |
181 | #define TARGET_ASM_FILE_END hook_void_void | |
182 | #endif | |
183 | ||
92c473b8 | 184 | #ifndef TARGET_ASM_FILE_START_APP_OFF |
185 | #define TARGET_ASM_FILE_START_APP_OFF false | |
186 | #endif | |
187 | ||
188 | #ifndef TARGET_ASM_FILE_START_FILE_DIRECTIVE | |
189 | #define TARGET_ASM_FILE_START_FILE_DIRECTIVE false | |
190 | #endif | |
191 | ||
864af209 | 192 | #ifndef TARGET_ASM_EXTERNAL_LIBCALL |
193 | #define TARGET_ASM_EXTERNAL_LIBCALL default_external_libcall | |
194 | #endif | |
195 | ||
9423c9b7 | 196 | #ifndef TARGET_ASM_MARK_DECL_PRESERVED |
197 | #define TARGET_ASM_MARK_DECL_PRESERVED hook_void_constcharptr | |
198 | #endif | |
199 | ||
40af64cc | 200 | #ifndef TARGET_ASM_OUTPUT_DWARF_DTPREL |
201 | #define TARGET_ASM_OUTPUT_DWARF_DTPREL NULL | |
202 | #endif | |
203 | ||
58356836 | 204 | #define TARGET_ASM_ALIGNED_INT_OP \ |
205 | {TARGET_ASM_ALIGNED_HI_OP, \ | |
206 | TARGET_ASM_ALIGNED_SI_OP, \ | |
207 | TARGET_ASM_ALIGNED_DI_OP, \ | |
208 | TARGET_ASM_ALIGNED_TI_OP} | |
209 | ||
210 | #define TARGET_ASM_UNALIGNED_INT_OP \ | |
211 | {TARGET_ASM_UNALIGNED_HI_OP, \ | |
212 | TARGET_ASM_UNALIGNED_SI_OP, \ | |
213 | TARGET_ASM_UNALIGNED_DI_OP, \ | |
214 | TARGET_ASM_UNALIGNED_TI_OP} | |
215 | ||
11ff5d0d | 216 | #define TARGET_ASM_OUT {TARGET_ASM_OPEN_PAREN, \ |
217 | TARGET_ASM_CLOSE_PAREN, \ | |
58356836 | 218 | TARGET_ASM_BYTE_OP, \ |
219 | TARGET_ASM_ALIGNED_INT_OP, \ | |
220 | TARGET_ASM_UNALIGNED_INT_OP, \ | |
221 | TARGET_ASM_INTEGER, \ | |
67c1e638 | 222 | TARGET_ASM_GLOBALIZE_LABEL, \ |
2f9fc8ef | 223 | TARGET_ASM_EMIT_UNWIND_LABEL, \ |
8ec87476 | 224 | TARGET_UNWIND_EMIT, \ |
805e22b2 | 225 | TARGET_ASM_INTERNAL_LABEL, \ |
1774763d | 226 | TARGET_ASM_TTYPE, \ |
2532673e | 227 | TARGET_ASM_ASSEMBLE_VISIBILITY, \ |
11ff5d0d | 228 | TARGET_ASM_FUNCTION_PROLOGUE, \ |
85ae73e8 | 229 | TARGET_ASM_FUNCTION_END_PROLOGUE, \ |
230 | TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, \ | |
2cb4ac60 | 231 | TARGET_ASM_FUNCTION_EPILOGUE, \ |
2f14b1f9 | 232 | TARGET_ASM_INIT_SECTIONS, \ |
01d15dc5 | 233 | TARGET_ASM_NAMED_SECTION, \ |
52470889 | 234 | TARGET_ASM_SELECT_SECTION, \ |
bbfbe351 | 235 | TARGET_ASM_SELECT_RTX_SECTION, \ |
52470889 | 236 | TARGET_ASM_UNIQUE_SECTION, \ |
76aec42f | 237 | TARGET_ASM_FUNCTION_RODATA_SECTION, \ |
01d15dc5 | 238 | TARGET_ASM_CONSTRUCTOR, \ |
c6933ba6 | 239 | TARGET_ASM_DESTRUCTOR, \ |
240 | TARGET_ASM_OUTPUT_MI_THUNK, \ | |
f6940372 | 241 | TARGET_ASM_CAN_OUTPUT_MI_THUNK, \ |
92c473b8 | 242 | TARGET_ASM_FILE_START, \ |
864af209 | 243 | TARGET_ASM_FILE_END, \ |
9423c9b7 | 244 | TARGET_ASM_EXTERNAL_LIBCALL, \ |
40af64cc | 245 | TARGET_ASM_MARK_DECL_PRESERVED, \ |
246 | TARGET_ASM_OUTPUT_DWARF_DTPREL} | |
17d9b0c3 | 247 | |
747af5e7 | 248 | /* Scheduler hooks. All of these default to null pointers, which |
249 | haifa-sched.c looks for and handles. */ | |
250 | #define TARGET_SCHED_ADJUST_COST 0 | |
251 | #define TARGET_SCHED_ADJUST_PRIORITY 0 | |
252 | #define TARGET_SCHED_ISSUE_RATE 0 | |
253 | #define TARGET_SCHED_VARIABLE_ISSUE 0 | |
254 | #define TARGET_SCHED_INIT 0 | |
255 | #define TARGET_SCHED_FINISH 0 | |
f77a5bb0 | 256 | #define TARGET_SCHED_INIT_GLOBAL 0 |
257 | #define TARGET_SCHED_FINISH_GLOBAL 0 | |
747af5e7 | 258 | #define TARGET_SCHED_REORDER 0 |
259 | #define TARGET_SCHED_REORDER2 0 | |
58ada791 | 260 | #define TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK 0 |
bea4bad2 | 261 | #define TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN 0 |
262 | #define TARGET_SCHED_DFA_PRE_CYCLE_INSN 0 | |
263 | #define TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN 0 | |
264 | #define TARGET_SCHED_DFA_POST_CYCLE_INSN 0 | |
265 | #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD 0 | |
58ada791 | 266 | #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD 0 |
267 | #define TARGET_SCHED_DFA_NEW_CYCLE 0 | |
52c4b43f | 268 | #define TARGET_SCHED_IS_COSTLY_DEPENDENCE 0 |
bea4bad2 | 269 | |
270 | #define TARGET_SCHED \ | |
271 | {TARGET_SCHED_ADJUST_COST, \ | |
272 | TARGET_SCHED_ADJUST_PRIORITY, \ | |
273 | TARGET_SCHED_ISSUE_RATE, \ | |
274 | TARGET_SCHED_VARIABLE_ISSUE, \ | |
275 | TARGET_SCHED_INIT, \ | |
276 | TARGET_SCHED_FINISH, \ | |
f77a5bb0 | 277 | TARGET_SCHED_INIT_GLOBAL, \ |
278 | TARGET_SCHED_FINISH_GLOBAL, \ | |
bea4bad2 | 279 | TARGET_SCHED_REORDER, \ |
280 | TARGET_SCHED_REORDER2, \ | |
58ada791 | 281 | TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK, \ |
bea4bad2 | 282 | TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, \ |
283 | TARGET_SCHED_DFA_PRE_CYCLE_INSN, \ | |
284 | TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, \ | |
285 | TARGET_SCHED_DFA_POST_CYCLE_INSN, \ | |
286 | TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, \ | |
58ada791 | 287 | TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD, \ |
288 | TARGET_SCHED_DFA_NEW_CYCLE, \ | |
52c4b43f | 289 | TARGET_SCHED_IS_COSTLY_DEPENDENCE} |
747af5e7 | 290 | |
b056d812 | 291 | #define TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD 0 |
b056d812 | 292 | |
293 | #define TARGET_VECTORIZE \ | |
f1a494f4 | 294 | {TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD} |
b056d812 | 295 | |
ff05e09e | 296 | #define TARGET_DEFAULT_TARGET_FLAGS 0 |
297 | ||
298 | #define TARGET_HANDLE_OPTION hook_bool_size_t_constcharptr_int_true | |
299 | ||
95215948 | 300 | /* In except.c */ |
be6bbbd8 | 301 | #define TARGET_EH_RETURN_FILTER_MODE default_eh_return_filter_mode |
95215948 | 302 | |
ec0457a8 | 303 | /* In tree.c. */ |
a767736d | 304 | #define TARGET_MERGE_DECL_ATTRIBUTES merge_decl_attributes |
305 | #define TARGET_MERGE_TYPE_ATTRIBUTES merge_type_attributes | |
f8e93a2e | 306 | #define TARGET_ATTRIBUTE_TABLE NULL |
a767736d | 307 | |
ec0457a8 | 308 | /* In cse.c. */ |
309 | #define TARGET_ADDRESS_COST default_address_cost | |
310 | ||
fc2a2dcb | 311 | /* In builtins.c. */ |
f2f543a3 | 312 | #define TARGET_INIT_BUILTINS hook_void_void |
fc2a2dcb | 313 | #define TARGET_EXPAND_BUILTIN default_expand_builtin |
65441f6f | 314 | #define TARGET_RESOLVE_OVERLOADED_BUILTIN NULL |
0ab8af67 | 315 | #define TARGET_FOLD_BUILTIN hook_tree_tree_tree_bool_null |
fc2a2dcb | 316 | |
2cb4ac60 | 317 | /* In varasm.c. */ |
318 | #ifndef TARGET_SECTION_TYPE_FLAGS | |
319 | #define TARGET_SECTION_TYPE_FLAGS default_section_type_flags | |
320 | #endif | |
321 | ||
7b4a38a6 | 322 | #ifndef TARGET_STRIP_NAME_ENCODING |
323 | #define TARGET_STRIP_NAME_ENCODING default_strip_name_encoding | |
324 | #endif | |
325 | ||
33459320 | 326 | #ifndef TARGET_BINDS_LOCAL_P |
327 | #define TARGET_BINDS_LOCAL_P default_binds_local_p | |
328 | #endif | |
329 | ||
c49547c4 | 330 | #ifndef TARGET_SHIFT_TRUNCATION_MASK |
331 | #define TARGET_SHIFT_TRUNCATION_MASK default_shift_truncation_mask | |
332 | #endif | |
333 | ||
805e22b2 | 334 | #ifndef TARGET_VALID_POINTER_MODE |
335 | #define TARGET_VALID_POINTER_MODE default_valid_pointer_mode | |
336 | #endif | |
337 | ||
b2aef146 | 338 | #ifndef TARGET_SCALAR_MODE_SUPPORTED_P |
339 | #define TARGET_SCALAR_MODE_SUPPORTED_P default_scalar_mode_supported_p | |
340 | #endif | |
341 | ||
9e7454d0 | 342 | #ifndef TARGET_VECTOR_MODE_SUPPORTED_P |
343 | #define TARGET_VECTOR_MODE_SUPPORTED_P hook_bool_mode_false | |
344 | #endif | |
345 | ||
ad92037a | 346 | #ifndef TARGET_VECTOR_OPAQUE_P |
347 | #define TARGET_VECTOR_OPAQUE_P hook_bool_tree_false | |
5050b2f7 | 348 | #endif |
349 | ||
9e7454d0 | 350 | /* In hooks.c. */ |
b2ec75b5 | 351 | #define TARGET_CANNOT_MODIFY_JUMPS_P hook_bool_void_false |
e26dbf6d | 352 | #define TARGET_BRANCH_TARGET_REGISTER_CLASS hook_int_void_no_regs |
8af3db02 | 353 | #define TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED hook_bool_bool_false |
a6bbccc1 | 354 | #define TARGET_CANNOT_FORCE_CONST_MEM hook_bool_rtx_false |
2f58af60 | 355 | #define TARGET_CANNOT_COPY_INSN_P NULL |
280566a7 | 356 | #define TARGET_COMMUTATIVE_P hook_bool_rtx_commutative_p |
bfe57ab7 | 357 | #define TARGET_DELEGITIMIZE_ADDRESS hook_rtx_rtx_identity |
805e22b2 | 358 | #define TARGET_FUNCTION_OK_FOR_SIBCALL hook_bool_tree_tree_false |
b2ec75b5 | 359 | #define TARGET_COMP_TYPE_ATTRIBUTES hook_int_tree_tree_1 |
360 | #define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES hook_void_tree | |
361 | #define TARGET_INSERT_ATTRIBUTES hook_void_tree_treeptr | |
362 | #define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P hook_bool_tree_false | |
363 | #define TARGET_MS_BITFIELD_LAYOUT_P hook_bool_tree_false | |
25ba5be6 | 364 | #define TARGET_ALIGN_ANON_BITFIELD hook_bool_void_false |
ec0457a8 | 365 | #define TARGET_RTX_COSTS hook_bool_rtx_int_int_intp_false |
333715c2 | 366 | #define TARGET_MANGLE_FUNDAMENTAL_TYPE hook_constcharptr_tree_null |
edf54f2a | 367 | #define TARGET_ALLOCATE_INITIAL_VALUE NULL |
9292e3be | 368 | |
c4503c0a | 369 | #ifndef TARGET_DECIMAL_FLOAT_SUPPORTED_P |
370 | #define TARGET_DECIMAL_FLOAT_SUPPORTED_P hook_bool_void_false | |
371 | #endif | |
372 | ||
f2f543a3 | 373 | #ifndef TARGET_INIT_LIBFUNCS |
374 | #define TARGET_INIT_LIBFUNCS hook_void_void | |
375 | #endif | |
376 | ||
9292e3be | 377 | #ifndef TARGET_IN_SMALL_DATA_P |
b2ec75b5 | 378 | #define TARGET_IN_SMALL_DATA_P hook_bool_tree_false |
9292e3be | 379 | #endif |
e27e52e0 | 380 | |
7811991d | 381 | #ifndef TARGET_ENCODE_SECTION_INFO |
001be062 | 382 | #define TARGET_ENCODE_SECTION_INFO default_encode_section_info |
7811991d | 383 | #endif |
384 | ||
10fda9eb | 385 | #ifndef TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN |
386 | #define TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN hook_invalid_arg_for_unprototyped_fn | |
387 | #endif | |
388 | ||
7a979707 | 389 | #define TARGET_INVALID_CONVERSION hook_constcharptr_tree_tree_null |
390 | #define TARGET_INVALID_UNARY_OP hook_constcharptr_int_tree_null | |
391 | #define TARGET_INVALID_BINARY_OP hook_constcharptr_int_tree_tree_null | |
392 | ||
124ac4e4 | 393 | #define TARGET_FIXED_CONDITION_CODE_REGS hook_bool_uintp_uintp_false |
394 | ||
395 | #define TARGET_CC_MODES_COMPATIBLE default_cc_modes_compatible | |
396 | ||
2efea8c0 | 397 | #define TARGET_MACHINE_DEPENDENT_REORG 0 |
398 | ||
2e15d750 | 399 | #define TARGET_BUILD_BUILTIN_VA_LIST std_build_builtin_va_list |
400 | ||
7988d6e2 | 401 | #define TARGET_GET_PCH_VALIDITY default_get_pch_validity |
402 | #define TARGET_PCH_VALID_P default_pch_valid_p | |
761d9126 | 403 | #define TARGET_CHECK_PCH_TARGET_FLAGS NULL |
7988d6e2 | 404 | |
bfb835d3 | 405 | #define TARGET_DEFAULT_SHORT_ENUMS hook_bool_void_false |
406 | ||
e3e026e8 | 407 | #define TARGET_BUILTIN_SETJMP_FRAME_VALUE default_builtin_setjmp_frame_value |
408 | ||
64d5fb6a | 409 | #define TARGET_MD_ASM_CLOBBERS hook_tree_tree_tree_tree_3rd_identity |
0fb2666c | 410 | |
8ff30ff6 | 411 | #define TARGET_DWARF_CALLING_CONVENTION hook_int_tree_0 |
412 | ||
d15ee1a5 | 413 | #define TARGET_DWARF_HANDLE_FRAME_UNSPEC 0 |
414 | ||
a6c787e5 | 415 | #define TARGET_STDARG_OPTIMIZE_HOOK 0 |
416 | ||
f1a0edff | 417 | #define TARGET_STACK_PROTECT_GUARD default_stack_protect_guard |
418 | #define TARGET_STACK_PROTECT_FAIL default_external_stack_protect_fail | |
419 | ||
1774763d | 420 | #define TARGET_ARM_EABI_UNWINDER false |
421 | ||
1ce13983 | 422 | #define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_tree_false |
174d9cc3 | 423 | #define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_false |
424 | #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_false | |
45550790 | 425 | |
10ec06d3 | 426 | #define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null |
45550790 | 427 | #define TARGET_RETURN_IN_MEMORY default_return_in_memory |
2c8ff1ed | 428 | #define TARGET_RETURN_IN_MSB hook_bool_tree_false |
45550790 | 429 | |
430 | #define TARGET_EXPAND_BUILTIN_SAVEREGS default_expand_builtin_saveregs | |
431 | #define TARGET_SETUP_INCOMING_VARARGS default_setup_incoming_varargs | |
9878c8d9 | 432 | #define TARGET_STRICT_ARGUMENT_NAMING hook_bool_CUMULATIVE_ARGS_false |
92d40bc4 | 433 | #define TARGET_PRETEND_OUTGOING_VARARGS_NAMED \ |
434 | default_pretend_outgoing_varargs_named | |
435 | #define TARGET_SPLIT_COMPLEX_ARG NULL | |
45550790 | 436 | |
fcdd3ab3 | 437 | #define TARGET_GIMPLIFY_VA_ARG_EXPR std_gimplify_va_arg_expr |
13f08ee7 | 438 | #define TARGET_PASS_BY_REFERENCE hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false |
2ca3d426 | 439 | |
440 | #define TARGET_RELAXED_ORDERING false | |
441 | ||
0336f0f0 | 442 | #define TARGET_MUST_PASS_IN_STACK must_pass_in_stack_var_size_or_pad |
13f08ee7 | 443 | #define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false |
f054eb3c | 444 | #define TARGET_ARG_PARTIAL_BYTES hook_int_CUMULATIVE_ARGS_mode_tree_bool_0 |
0336f0f0 | 445 | |
46b3ff29 | 446 | #define TARGET_FUNCTION_VALUE default_function_value |
567925e3 | 447 | #define TARGET_INTERNAL_ARG_POINTER default_internal_arg_pointer |
46b3ff29 | 448 | |
45550790 | 449 | #define TARGET_CALLS { \ |
450 | TARGET_PROMOTE_FUNCTION_ARGS, \ | |
451 | TARGET_PROMOTE_FUNCTION_RETURN, \ | |
452 | TARGET_PROMOTE_PROTOTYPES, \ | |
453 | TARGET_STRUCT_VALUE_RTX, \ | |
454 | TARGET_RETURN_IN_MEMORY, \ | |
2c8ff1ed | 455 | TARGET_RETURN_IN_MSB, \ |
b981d932 | 456 | TARGET_PASS_BY_REFERENCE, \ |
45550790 | 457 | TARGET_EXPAND_BUILTIN_SAVEREGS, \ |
458 | TARGET_SETUP_INCOMING_VARARGS, \ | |
459 | TARGET_STRICT_ARGUMENT_NAMING, \ | |
460 | TARGET_PRETEND_OUTGOING_VARARGS_NAMED, \ | |
92d40bc4 | 461 | TARGET_SPLIT_COMPLEX_ARG, \ |
13f08ee7 | 462 | TARGET_MUST_PASS_IN_STACK, \ |
f054eb3c | 463 | TARGET_CALLEE_COPIES, \ |
10fda9eb | 464 | TARGET_ARG_PARTIAL_BYTES, \ |
46b3ff29 | 465 | TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN, \ |
567925e3 | 466 | TARGET_FUNCTION_VALUE, \ |
467 | TARGET_INTERNAL_ARG_POINTER \ | |
45550790 | 468 | } |
469 | ||
1774763d | 470 | #ifndef TARGET_UNWIND_TABLES_DEFAULT |
471 | #define TARGET_UNWIND_TABLES_DEFAULT false | |
472 | #endif | |
146c1b4f | 473 | |
474 | #ifndef TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME | |
475 | #define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME 0 | |
476 | #endif | |
477 | ||
478 | #ifndef TARGET_HANDLE_PRAGMA_EXTERN_PREFIX | |
479 | #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 0 | |
480 | #endif | |
481 | ||
4d58fa46 | 482 | #ifndef TARGET_SECONDARY_RELOAD |
483 | #define TARGET_SECONDARY_RELOAD default_secondary_reload | |
484 | #endif | |
485 | ||
c1dc02de | 486 | |
487 | /* C++ specific. */ | |
488 | #ifndef TARGET_CXX_GUARD_TYPE | |
489 | #define TARGET_CXX_GUARD_TYPE default_cxx_guard_type | |
490 | #endif | |
491 | ||
492 | #ifndef TARGET_CXX_GUARD_MASK_BIT | |
493 | #define TARGET_CXX_GUARD_MASK_BIT hook_bool_void_false | |
494 | #endif | |
495 | ||
600f4be7 | 496 | #ifndef TARGET_CXX_GET_COOKIE_SIZE |
497 | #define TARGET_CXX_GET_COOKIE_SIZE default_cxx_get_cookie_size | |
498 | #endif | |
499 | ||
500 | #ifndef TARGET_CXX_COOKIE_HAS_SIZE | |
501 | #define TARGET_CXX_COOKIE_HAS_SIZE hook_bool_void_false | |
502 | #endif | |
503 | ||
52d6bee4 | 504 | #ifndef TARGET_CXX_IMPORT_EXPORT_CLASS |
505 | #define TARGET_CXX_IMPORT_EXPORT_CLASS NULL | |
506 | #endif | |
507 | ||
853b7640 | 508 | #ifndef TARGET_CXX_CDTOR_RETURNS_THIS |
509 | #define TARGET_CXX_CDTOR_RETURNS_THIS hook_bool_void_false | |
510 | #endif | |
511 | ||
219626ad | 512 | #ifndef TARGET_CXX_KEY_METHOD_MAY_BE_INLINE |
513 | #define TARGET_CXX_KEY_METHOD_MAY_BE_INLINE hook_bool_void_true | |
514 | #endif | |
515 | ||
7908506d | 516 | #ifndef TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY |
517 | #define TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY hook_void_tree | |
518 | #endif | |
519 | ||
520 | #ifndef TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT | |
521 | #define TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT hook_bool_void_true | |
4fc9a8ec | 522 | #endif |
523 | ||
46b9ff5e | 524 | #ifndef TARGET_CXX_USE_AEABI_ATEXIT |
525 | #define TARGET_CXX_USE_AEABI_ATEXIT hook_bool_void_false | |
526 | #endif | |
527 | ||
6c1e551f | 528 | #ifndef TARGET_CXX_ADJUST_CLASS_AT_DEFINITION |
529 | #define TARGET_CXX_ADJUST_CLASS_AT_DEFINITION hook_void_tree | |
530 | #endif | |
531 | ||
4fc9a8ec | 532 | #define TARGET_CXX \ |
533 | { \ | |
534 | TARGET_CXX_GUARD_TYPE, \ | |
535 | TARGET_CXX_GUARD_MASK_BIT, \ | |
536 | TARGET_CXX_GET_COOKIE_SIZE, \ | |
537 | TARGET_CXX_COOKIE_HAS_SIZE, \ | |
538 | TARGET_CXX_IMPORT_EXPORT_CLASS, \ | |
539 | TARGET_CXX_CDTOR_RETURNS_THIS, \ | |
540 | TARGET_CXX_KEY_METHOD_MAY_BE_INLINE, \ | |
7908506d | 541 | TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY, \ |
542 | TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT, \ | |
1774763d | 543 | TARGET_CXX_USE_AEABI_ATEXIT, \ |
6c1e551f | 544 | TARGET_CXX_ADJUST_CLASS_AT_DEFINITION \ |
c1dc02de | 545 | } |
546 | ||
a767736d | 547 | /* The whole shebang. */ |
548 | #define TARGET_INITIALIZER \ | |
549 | { \ | |
17d9b0c3 | 550 | TARGET_ASM_OUT, \ |
747af5e7 | 551 | TARGET_SCHED, \ |
b056d812 | 552 | TARGET_VECTORIZE, \ |
ff05e09e | 553 | TARGET_DEFAULT_TARGET_FLAGS, \ |
554 | TARGET_HANDLE_OPTION, \ | |
95215948 | 555 | TARGET_EH_RETURN_FILTER_MODE, \ |
a767736d | 556 | TARGET_MERGE_DECL_ATTRIBUTES, \ |
557 | TARGET_MERGE_TYPE_ATTRIBUTES, \ | |
e3c541f0 | 558 | TARGET_ATTRIBUTE_TABLE, \ |
f32321da | 559 | TARGET_COMP_TYPE_ATTRIBUTES, \ |
8ee295a7 | 560 | TARGET_SET_DEFAULT_TYPE_ATTRIBUTES, \ |
fc2a2dcb | 561 | TARGET_INSERT_ATTRIBUTES, \ |
e3c541f0 | 562 | TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P, \ |
f04f096b | 563 | TARGET_MS_BITFIELD_LAYOUT_P, \ |
c4503c0a | 564 | TARGET_DECIMAL_FLOAT_SUPPORTED_P, \ |
25ba5be6 | 565 | TARGET_ALIGN_ANON_BITFIELD, \ |
fc2a2dcb | 566 | TARGET_INIT_BUILTINS, \ |
2cb4ac60 | 567 | TARGET_EXPAND_BUILTIN, \ |
65441f6f | 568 | TARGET_RESOLVE_OVERLOADED_BUILTIN, \ |
b0160cb4 | 569 | TARGET_FOLD_BUILTIN, \ |
333715c2 | 570 | TARGET_MANGLE_FUNDAMENTAL_TYPE, \ |
f2f543a3 | 571 | TARGET_INIT_LIBFUNCS, \ |
2cb4ac60 | 572 | TARGET_SECTION_TYPE_FLAGS, \ |
52470889 | 573 | TARGET_CANNOT_MODIFY_JUMPS_P, \ |
7988d6e2 | 574 | TARGET_BRANCH_TARGET_REGISTER_CLASS, \ |
8af3db02 | 575 | TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED, \ |
a6bbccc1 | 576 | TARGET_CANNOT_FORCE_CONST_MEM, \ |
2f58af60 | 577 | TARGET_CANNOT_COPY_INSN_P, \ |
280566a7 | 578 | TARGET_COMMUTATIVE_P, \ |
bfe57ab7 | 579 | TARGET_DELEGITIMIZE_ADDRESS, \ |
805e22b2 | 580 | TARGET_FUNCTION_OK_FOR_SIBCALL, \ |
7811991d | 581 | TARGET_IN_SMALL_DATA_P, \ |
33459320 | 582 | TARGET_BINDS_LOCAL_P, \ |
7b4a38a6 | 583 | TARGET_ENCODE_SECTION_INFO, \ |
33459320 | 584 | TARGET_STRIP_NAME_ENCODING, \ |
c49547c4 | 585 | TARGET_SHIFT_TRUNCATION_MASK, \ |
805e22b2 | 586 | TARGET_VALID_POINTER_MODE, \ |
b2aef146 | 587 | TARGET_SCALAR_MODE_SUPPORTED_P, \ |
9e7454d0 | 588 | TARGET_VECTOR_MODE_SUPPORTED_P, \ |
ad92037a | 589 | TARGET_VECTOR_OPAQUE_P, \ |
fab7adbf | 590 | TARGET_RTX_COSTS, \ |
ec0457a8 | 591 | TARGET_ADDRESS_COST, \ |
edf54f2a | 592 | TARGET_ALLOCATE_INITIAL_VALUE, \ |
9754a2f0 | 593 | TARGET_DWARF_REGISTER_SPAN, \ |
124ac4e4 | 594 | TARGET_FIXED_CONDITION_CODE_REGS, \ |
595 | TARGET_CC_MODES_COMPATIBLE, \ | |
2efea8c0 | 596 | TARGET_MACHINE_DEPENDENT_REORG, \ |
2e15d750 | 597 | TARGET_BUILD_BUILTIN_VA_LIST, \ |
17a6380d | 598 | TARGET_GIMPLIFY_VA_ARG_EXPR, \ |
7988d6e2 | 599 | TARGET_GET_PCH_VALIDITY, \ |
600 | TARGET_PCH_VALID_P, \ | |
761d9126 | 601 | TARGET_CHECK_PCH_TARGET_FLAGS, \ |
bfb835d3 | 602 | TARGET_DEFAULT_SHORT_ENUMS, \ |
e3e026e8 | 603 | TARGET_BUILTIN_SETJMP_FRAME_VALUE, \ |
0fb2666c | 604 | TARGET_MD_ASM_CLOBBERS, \ |
8ff30ff6 | 605 | TARGET_DWARF_CALLING_CONVENTION, \ |
d15ee1a5 | 606 | TARGET_DWARF_HANDLE_FRAME_UNSPEC, \ |
a6c787e5 | 607 | TARGET_STDARG_OPTIMIZE_HOOK, \ |
f1a0edff | 608 | TARGET_STACK_PROTECT_GUARD, \ |
609 | TARGET_STACK_PROTECT_FAIL, \ | |
1606e68a | 610 | TARGET_INVALID_WITHIN_DOLOOP, \ |
6c1e551f | 611 | TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, \ |
92d40bc4 | 612 | TARGET_CALLS, \ |
7a979707 | 613 | TARGET_INVALID_CONVERSION, \ |
614 | TARGET_INVALID_UNARY_OP, \ | |
615 | TARGET_INVALID_BINARY_OP, \ | |
4d58fa46 | 616 | TARGET_SECONDARY_RELOAD, \ |
c1dc02de | 617 | TARGET_CXX, \ |
1774763d | 618 | TARGET_UNWIND_TABLES_DEFAULT, \ |
33459320 | 619 | TARGET_HAVE_NAMED_SECTIONS, \ |
620 | TARGET_HAVE_CTORS_DTORS, \ | |
9292e3be | 621 | TARGET_HAVE_TLS, \ |
a08b74c8 | 622 | TARGET_HAVE_SRODATA_SECTION, \ |
92c473b8 | 623 | TARGET_TERMINATE_DW2_EH_FRAME_INFO, \ |
624 | TARGET_ASM_FILE_START_APP_OFF, \ | |
625 | TARGET_ASM_FILE_START_FILE_DIRECTIVE, \ | |
146c1b4f | 626 | TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, \ |
627 | TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, \ | |
2ca3d426 | 628 | TARGET_RELAXED_ORDERING, \ |
1774763d | 629 | TARGET_ARM_EABI_UNWINDER \ |
a767736d | 630 | } |
e27e52e0 | 631 | |
632 | #include "hooks.h" | |
45550790 | 633 | #include "targhooks.h" |