Mercurial > hg > CbC > CbC_gcc
comparison gcc/target-def.h @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
65:65488c3d617d | 67:f6334be47118 |
---|---|
18 | 18 |
19 In other words, you are welcome to use, share and improve this program. | 19 In other words, you are welcome to use, share and improve this program. |
20 You are forbidden to forbid anyone else to use, share and improve | 20 You are forbidden to forbid anyone else to use, share and improve |
21 what you give them. Help stamp out software-hoarding! */ | 21 what you give them. Help stamp out software-hoarding! */ |
22 | 22 |
23 /* See target.h for a description of what this file contains and how to | 23 /* See target.def for a description of what this file contains and how to |
24 use it. | 24 use it. |
25 | 25 |
26 We want to have non-NULL default definitions of all hook functions, | 26 We want to have non-NULL default definitions of all hook functions, |
27 even if they do nothing. */ | 27 even if they do nothing. */ |
28 | 28 |
29 /* Note that if one of these macros must be defined in an OS .h file | 29 /* Note that if one of these macros must be defined in an OS .h file |
30 rather than the .c file, then we need to wrap the default | 30 rather than the .c file, then we need to wrap the default |
31 definition in a #ifndef, since files include tm.h before this one. */ | 31 definition in a #ifndef, since files include tm.h before this one. */ |
32 | |
33 /* Assembler output. */ | |
34 #ifndef TARGET_ASM_OPEN_PAREN | |
35 #define TARGET_ASM_OPEN_PAREN "(" | |
36 #endif | |
37 #ifndef TARGET_ASM_CLOSE_PAREN | |
38 #define TARGET_ASM_CLOSE_PAREN ")" | |
39 #endif | |
40 | |
41 #define TARGET_ASM_BYTE_OP "\t.byte\t" | |
42 | 32 |
43 #define TARGET_ASM_ALIGNED_HI_OP "\t.short\t" | 33 #define TARGET_ASM_ALIGNED_HI_OP "\t.short\t" |
44 #define TARGET_ASM_ALIGNED_SI_OP "\t.long\t" | 34 #define TARGET_ASM_ALIGNED_SI_OP "\t.long\t" |
45 #define TARGET_ASM_ALIGNED_DI_OP NULL | 35 #define TARGET_ASM_ALIGNED_DI_OP NULL |
46 #define TARGET_ASM_ALIGNED_TI_OP NULL | 36 #define TARGET_ASM_ALIGNED_TI_OP NULL |
55 #define TARGET_ASM_UNALIGNED_HI_OP NULL | 45 #define TARGET_ASM_UNALIGNED_HI_OP NULL |
56 #define TARGET_ASM_UNALIGNED_SI_OP NULL | 46 #define TARGET_ASM_UNALIGNED_SI_OP NULL |
57 #define TARGET_ASM_UNALIGNED_DI_OP NULL | 47 #define TARGET_ASM_UNALIGNED_DI_OP NULL |
58 #define TARGET_ASM_UNALIGNED_TI_OP NULL | 48 #define TARGET_ASM_UNALIGNED_TI_OP NULL |
59 #endif /* OBJECT_FORMAT_ELF */ | 49 #endif /* OBJECT_FORMAT_ELF */ |
60 | |
61 #define TARGET_ASM_INTEGER default_assemble_integer | |
62 | |
63 #ifndef TARGET_ASM_GLOBALIZE_LABEL | |
64 #define TARGET_ASM_GLOBALIZE_LABEL default_globalize_label | |
65 #endif | |
66 | |
67 #ifndef TARGET_ASM_GLOBALIZE_DECL_NAME | |
68 #define TARGET_ASM_GLOBALIZE_DECL_NAME default_globalize_decl_name | |
69 #endif | |
70 | |
71 #ifndef TARGET_ASM_EMIT_UNWIND_LABEL | |
72 #define TARGET_ASM_EMIT_UNWIND_LABEL default_emit_unwind_label | |
73 #endif | |
74 | |
75 #ifndef TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL | |
76 #define TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL default_emit_except_table_label | |
77 #endif | |
78 | |
79 #ifndef TARGET_UNWIND_EMIT | |
80 #define TARGET_UNWIND_EMIT default_unwind_emit | |
81 #endif | |
82 | |
83 #ifndef TARGET_ASM_INTERNAL_LABEL | |
84 #define TARGET_ASM_INTERNAL_LABEL default_internal_label | |
85 #endif | |
86 | |
87 #ifndef TARGET_ASM_TTYPE | |
88 #define TARGET_ASM_TTYPE hook_bool_rtx_false | |
89 #endif | |
90 | |
91 #ifndef TARGET_ASM_ASSEMBLE_VISIBILITY | |
92 #define TARGET_ASM_ASSEMBLE_VISIBILITY default_assemble_visibility | |
93 #endif | |
94 | |
95 #define TARGET_ASM_FUNCTION_PROLOGUE default_function_pro_epilogue | |
96 #define TARGET_ASM_FUNCTION_EPILOGUE default_function_pro_epilogue | |
97 #define TARGET_ASM_FUNCTION_END_PROLOGUE no_asm_to_stream | |
98 #define TARGET_ASM_FUNCTION_BEGIN_EPILOGUE no_asm_to_stream | |
99 | |
100 #ifndef TARGET_ASM_RELOC_RW_MASK | |
101 #define TARGET_ASM_RELOC_RW_MASK default_reloc_rw_mask | |
102 #endif | |
103 | |
104 #ifndef TARGET_ASM_SELECT_SECTION | |
105 #define TARGET_ASM_SELECT_SECTION default_select_section | |
106 #endif | |
107 | |
108 #ifndef TARGET_ASM_UNIQUE_SECTION | |
109 #define TARGET_ASM_UNIQUE_SECTION default_unique_section | |
110 #endif | |
111 | |
112 #ifndef TARGET_ASM_FUNCTION_RODATA_SECTION | |
113 #define TARGET_ASM_FUNCTION_RODATA_SECTION default_function_rodata_section | |
114 #endif | |
115 | |
116 #ifndef TARGET_ASM_SELECT_RTX_SECTION | |
117 #define TARGET_ASM_SELECT_RTX_SECTION default_select_rtx_section | |
118 #endif | |
119 | 50 |
120 #if !defined(TARGET_ASM_CONSTRUCTOR) && !defined(USE_COLLECT2) | 51 #if !defined(TARGET_ASM_CONSTRUCTOR) && !defined(USE_COLLECT2) |
121 # ifdef CTORS_SECTION_ASM_OP | 52 # ifdef CTORS_SECTION_ASM_OP |
122 # define TARGET_ASM_CONSTRUCTOR default_ctor_section_asm_out_constructor | 53 # define TARGET_ASM_CONSTRUCTOR default_ctor_section_asm_out_constructor |
123 # else | 54 # else |
139 # define TARGET_ASM_DESTRUCTOR default_stabs_asm_out_destructor | 70 # define TARGET_ASM_DESTRUCTOR default_stabs_asm_out_destructor |
140 # endif | 71 # endif |
141 # endif | 72 # endif |
142 #endif | 73 #endif |
143 | 74 |
144 #define TARGET_ASM_OUTPUT_MI_THUNK NULL | |
145 #define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_false | |
146 | |
147 #if !defined(TARGET_HAVE_CTORS_DTORS) | 75 #if !defined(TARGET_HAVE_CTORS_DTORS) |
148 # if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR) | 76 # if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR) |
149 # define TARGET_HAVE_CTORS_DTORS true | 77 # define TARGET_HAVE_CTORS_DTORS true |
150 # else | |
151 # define TARGET_HAVE_CTORS_DTORS false | |
152 # define TARGET_ASM_CONSTRUCTOR NULL | |
153 # define TARGET_ASM_DESTRUCTOR NULL | |
154 # endif | 78 # endif |
155 #endif | |
156 | |
157 #ifndef TARGET_HAVE_SWITCHABLE_BSS_SECTIONS | |
158 #define TARGET_HAVE_SWITCHABLE_BSS_SECTIONS false | |
159 #endif | |
160 | |
161 #ifndef TARGET_ASM_INIT_SECTIONS | |
162 #define TARGET_ASM_INIT_SECTIONS hook_void_void | |
163 #endif | 79 #endif |
164 | 80 |
165 #ifdef TARGET_ASM_NAMED_SECTION | 81 #ifdef TARGET_ASM_NAMED_SECTION |
166 #define TARGET_HAVE_NAMED_SECTIONS true | 82 #define TARGET_HAVE_NAMED_SECTIONS true |
167 #else | |
168 #define TARGET_ASM_NAMED_SECTION default_no_named_section | |
169 #define TARGET_HAVE_NAMED_SECTIONS false | |
170 #endif | |
171 | |
172 #ifndef TARGET_INVALID_WITHIN_DOLOOP | |
173 #define TARGET_INVALID_WITHIN_DOLOOP default_invalid_within_doloop | |
174 #endif | |
175 | |
176 #ifndef TARGET_VALID_DLLIMPORT_ATTRIBUTE_P | |
177 #define TARGET_VALID_DLLIMPORT_ATTRIBUTE_P hook_bool_const_tree_true | |
178 #endif | |
179 | |
180 #ifndef TARGET_HAVE_TLS | |
181 #define TARGET_HAVE_TLS false | |
182 #endif | |
183 | |
184 #ifndef TARGET_HAVE_SRODATA_SECTION | |
185 #define TARGET_HAVE_SRODATA_SECTION false | |
186 #endif | 83 #endif |
187 | 84 |
188 #ifndef TARGET_TERMINATE_DW2_EH_FRAME_INFO | 85 #ifndef TARGET_TERMINATE_DW2_EH_FRAME_INFO |
189 #ifdef EH_FRAME_SECTION_NAME | 86 #ifdef EH_FRAME_SECTION_NAME |
190 #define TARGET_TERMINATE_DW2_EH_FRAME_INFO false | 87 #define TARGET_TERMINATE_DW2_EH_FRAME_INFO false |
191 #else | |
192 #define TARGET_TERMINATE_DW2_EH_FRAME_INFO true | |
193 #endif | 88 #endif |
194 #endif | 89 #endif |
195 | 90 |
196 #define TARGET_DWARF_REGISTER_SPAN hook_rtx_rtx_null | 91 #if !defined(TARGET_ASM_OUTPUT_ANCHOR) && !defined(ASM_OUTPUT_DEF) |
197 #define TARGET_INIT_DWARF_REG_SIZES_EXTRA hook_void_tree | |
198 | |
199 #ifndef TARGET_ASM_FILE_START | |
200 #define TARGET_ASM_FILE_START default_file_start | |
201 #endif | |
202 | |
203 #ifndef TARGET_ASM_FILE_END | |
204 #define TARGET_ASM_FILE_END hook_void_void | |
205 #endif | |
206 | |
207 #ifndef TARGET_ASM_LTO_START | |
208 #define TARGET_ASM_LTO_START hook_void_void | |
209 #endif | |
210 | |
211 #ifndef TARGET_ASM_LTO_END | |
212 #define TARGET_ASM_LTO_END hook_void_void | |
213 #endif | |
214 | |
215 #ifndef TARGET_ASM_CODE_END | |
216 #define TARGET_ASM_CODE_END hook_void_void | |
217 #endif | |
218 | |
219 #ifndef TARGET_EXTRA_LIVE_ON_ENTRY | |
220 #define TARGET_EXTRA_LIVE_ON_ENTRY hook_void_bitmap | |
221 #endif | |
222 | |
223 #ifndef TARGET_ASM_FILE_START_APP_OFF | |
224 #define TARGET_ASM_FILE_START_APP_OFF false | |
225 #endif | |
226 | |
227 #ifndef TARGET_ASM_FILE_START_FILE_DIRECTIVE | |
228 #define TARGET_ASM_FILE_START_FILE_DIRECTIVE false | |
229 #endif | |
230 | |
231 #ifndef TARGET_ASM_EXTERNAL_LIBCALL | |
232 #define TARGET_ASM_EXTERNAL_LIBCALL default_external_libcall | |
233 #endif | |
234 | |
235 #ifndef TARGET_ASM_MARK_DECL_PRESERVED | |
236 #define TARGET_ASM_MARK_DECL_PRESERVED hook_void_constcharptr | |
237 #endif | |
238 | |
239 #ifndef TARGET_ASM_OUTPUT_ANCHOR | |
240 #ifdef ASM_OUTPUT_DEF | |
241 #define TARGET_ASM_OUTPUT_ANCHOR default_asm_output_anchor | |
242 #else | |
243 #define TARGET_ASM_OUTPUT_ANCHOR NULL | 92 #define TARGET_ASM_OUTPUT_ANCHOR NULL |
244 #endif | 93 #endif |
245 #endif | |
246 | |
247 #ifndef TARGET_ASM_OUTPUT_DWARF_DTPREL | |
248 #define TARGET_ASM_OUTPUT_DWARF_DTPREL NULL | |
249 #endif | |
250 | |
251 #ifndef TARGET_ASM_FINAL_POSTSCAN_INSN | |
252 #define TARGET_ASM_FINAL_POSTSCAN_INSN NULL | |
253 #endif | |
254 | |
255 #ifndef TARGET_ASM_RECORD_GCC_SWITCHES | |
256 #define TARGET_ASM_RECORD_GCC_SWITCHES NULL | |
257 #endif | |
258 #ifndef TARGET_ASM_RECORD_GCC_SWITCHES_SECTION | |
259 #define TARGET_ASM_RECORD_GCC_SWITCHES_SECTION ".GCC.command.line" | |
260 #endif | |
261 | |
262 #define TARGET_ASM_TRAMPOLINE_TEMPLATE NULL | |
263 | 94 |
264 #define TARGET_ASM_ALIGNED_INT_OP \ | 95 #define TARGET_ASM_ALIGNED_INT_OP \ |
265 {TARGET_ASM_ALIGNED_HI_OP, \ | 96 {TARGET_ASM_ALIGNED_HI_OP, \ |
266 TARGET_ASM_ALIGNED_SI_OP, \ | 97 TARGET_ASM_ALIGNED_SI_OP, \ |
267 TARGET_ASM_ALIGNED_DI_OP, \ | 98 TARGET_ASM_ALIGNED_DI_OP, \ |
271 {TARGET_ASM_UNALIGNED_HI_OP, \ | 102 {TARGET_ASM_UNALIGNED_HI_OP, \ |
272 TARGET_ASM_UNALIGNED_SI_OP, \ | 103 TARGET_ASM_UNALIGNED_SI_OP, \ |
273 TARGET_ASM_UNALIGNED_DI_OP, \ | 104 TARGET_ASM_UNALIGNED_DI_OP, \ |
274 TARGET_ASM_UNALIGNED_TI_OP} | 105 TARGET_ASM_UNALIGNED_TI_OP} |
275 | 106 |
276 #define TARGET_ASM_OUT {TARGET_ASM_OPEN_PAREN, \ | 107 #ifndef IRA_COVER_CLASSES |
277 TARGET_ASM_CLOSE_PAREN, \ | |
278 TARGET_ASM_BYTE_OP, \ | |
279 TARGET_ASM_ALIGNED_INT_OP, \ | |
280 TARGET_ASM_UNALIGNED_INT_OP, \ | |
281 TARGET_ASM_INTEGER, \ | |
282 TARGET_ASM_GLOBALIZE_LABEL, \ | |
283 TARGET_ASM_GLOBALIZE_DECL_NAME, \ | |
284 TARGET_ASM_EMIT_UNWIND_LABEL, \ | |
285 TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL, \ | |
286 TARGET_UNWIND_EMIT, \ | |
287 TARGET_ASM_INTERNAL_LABEL, \ | |
288 TARGET_ASM_TTYPE, \ | |
289 TARGET_ASM_ASSEMBLE_VISIBILITY, \ | |
290 TARGET_ASM_FUNCTION_PROLOGUE, \ | |
291 TARGET_ASM_FUNCTION_END_PROLOGUE, \ | |
292 TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, \ | |
293 TARGET_ASM_FUNCTION_EPILOGUE, \ | |
294 TARGET_ASM_INIT_SECTIONS, \ | |
295 TARGET_ASM_NAMED_SECTION, \ | |
296 TARGET_ASM_RELOC_RW_MASK, \ | |
297 TARGET_ASM_SELECT_SECTION, \ | |
298 TARGET_ASM_SELECT_RTX_SECTION, \ | |
299 TARGET_ASM_UNIQUE_SECTION, \ | |
300 TARGET_ASM_FUNCTION_RODATA_SECTION, \ | |
301 TARGET_ASM_CONSTRUCTOR, \ | |
302 TARGET_ASM_DESTRUCTOR, \ | |
303 TARGET_ASM_OUTPUT_MI_THUNK, \ | |
304 TARGET_ASM_CAN_OUTPUT_MI_THUNK, \ | |
305 TARGET_ASM_FILE_START, \ | |
306 TARGET_ASM_FILE_END, \ | |
307 TARGET_ASM_LTO_START, \ | |
308 TARGET_ASM_LTO_END, \ | |
309 TARGET_ASM_CODE_END, \ | |
310 TARGET_ASM_EXTERNAL_LIBCALL, \ | |
311 TARGET_ASM_MARK_DECL_PRESERVED, \ | |
312 TARGET_ASM_RECORD_GCC_SWITCHES, \ | |
313 TARGET_ASM_RECORD_GCC_SWITCHES_SECTION, \ | |
314 TARGET_ASM_OUTPUT_ANCHOR, \ | |
315 TARGET_ASM_OUTPUT_DWARF_DTPREL, \ | |
316 TARGET_ASM_FINAL_POSTSCAN_INSN, \ | |
317 TARGET_ASM_TRAMPOLINE_TEMPLATE } | |
318 | |
319 /* Scheduler hooks. All of these default to null pointers, which | |
320 haifa-sched.c looks for and handles. */ | |
321 #define TARGET_SCHED_ADJUST_COST 0 | |
322 #define TARGET_SCHED_ADJUST_PRIORITY 0 | |
323 #define TARGET_SCHED_ISSUE_RATE 0 | |
324 #define TARGET_SCHED_VARIABLE_ISSUE 0 | |
325 #define TARGET_SCHED_INIT 0 | |
326 #define TARGET_SCHED_FINISH 0 | |
327 #define TARGET_SCHED_INIT_GLOBAL 0 | |
328 #define TARGET_SCHED_FINISH_GLOBAL 0 | |
329 #define TARGET_SCHED_REORDER 0 | |
330 #define TARGET_SCHED_REORDER2 0 | |
331 #define TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK 0 | |
332 #define TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN 0 | |
333 #define TARGET_SCHED_DFA_PRE_CYCLE_INSN 0 | |
334 #define TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN 0 | |
335 #define TARGET_SCHED_DFA_POST_CYCLE_INSN 0 | |
336 #define TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE 0 | |
337 #define TARGET_SCHED_DFA_POST_ADVANCE_CYCLE 0 | |
338 #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD 0 | |
339 #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD 0 | |
340 #define TARGET_SCHED_DFA_NEW_CYCLE 0 | |
341 #define TARGET_SCHED_IS_COSTLY_DEPENDENCE 0 | |
342 #define TARGET_SCHED_ADJUST_COST_2 0 | |
343 #define TARGET_SCHED_H_I_D_EXTENDED 0 | |
344 #define TARGET_SCHED_ALLOC_SCHED_CONTEXT 0 | |
345 #define TARGET_SCHED_INIT_SCHED_CONTEXT 0 | |
346 #define TARGET_SCHED_SET_SCHED_CONTEXT 0 | |
347 #define TARGET_SCHED_CLEAR_SCHED_CONTEXT 0 | |
348 #define TARGET_SCHED_FREE_SCHED_CONTEXT 0 | |
349 #define TARGET_SCHED_SPECULATE_INSN 0 | |
350 #define TARGET_SCHED_NEEDS_BLOCK_P 0 | |
351 #define TARGET_SCHED_GEN_SPEC_CHECK 0 | |
352 #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC 0 | |
353 #define TARGET_SCHED_SET_SCHED_FLAGS 0 | |
354 #define TARGET_SCHED_GET_INSN_SPEC_DS 0 | |
355 #define TARGET_SCHED_GET_INSN_CHECKED_DS 0 | |
356 #define TARGET_SCHED_SKIP_RTX_P 0 | |
357 #define TARGET_SCHED_SMS_RES_MII 0 | |
358 | |
359 #define TARGET_SCHED \ | |
360 {TARGET_SCHED_ADJUST_COST, \ | |
361 TARGET_SCHED_ADJUST_PRIORITY, \ | |
362 TARGET_SCHED_ISSUE_RATE, \ | |
363 TARGET_SCHED_VARIABLE_ISSUE, \ | |
364 TARGET_SCHED_INIT, \ | |
365 TARGET_SCHED_FINISH, \ | |
366 TARGET_SCHED_INIT_GLOBAL, \ | |
367 TARGET_SCHED_FINISH_GLOBAL, \ | |
368 TARGET_SCHED_REORDER, \ | |
369 TARGET_SCHED_REORDER2, \ | |
370 TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK, \ | |
371 TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, \ | |
372 TARGET_SCHED_DFA_PRE_CYCLE_INSN, \ | |
373 TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, \ | |
374 TARGET_SCHED_DFA_POST_CYCLE_INSN, \ | |
375 TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, \ | |
376 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE, \ | |
377 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, \ | |
378 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD, \ | |
379 TARGET_SCHED_DFA_NEW_CYCLE, \ | |
380 TARGET_SCHED_IS_COSTLY_DEPENDENCE, \ | |
381 TARGET_SCHED_ADJUST_COST_2, \ | |
382 TARGET_SCHED_H_I_D_EXTENDED, \ | |
383 TARGET_SCHED_ALLOC_SCHED_CONTEXT, \ | |
384 TARGET_SCHED_INIT_SCHED_CONTEXT, \ | |
385 TARGET_SCHED_SET_SCHED_CONTEXT, \ | |
386 TARGET_SCHED_CLEAR_SCHED_CONTEXT, \ | |
387 TARGET_SCHED_FREE_SCHED_CONTEXT, \ | |
388 TARGET_SCHED_SPECULATE_INSN, \ | |
389 TARGET_SCHED_NEEDS_BLOCK_P, \ | |
390 TARGET_SCHED_GEN_SPEC_CHECK, \ | |
391 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, \ | |
392 TARGET_SCHED_SET_SCHED_FLAGS, \ | |
393 TARGET_SCHED_GET_INSN_SPEC_DS, \ | |
394 TARGET_SCHED_GET_INSN_CHECKED_DS, \ | |
395 TARGET_SCHED_SKIP_RTX_P, \ | |
396 TARGET_SCHED_SMS_RES_MII} | |
397 | |
398 #define TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD 0 | |
399 #define TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION \ | |
400 default_builtin_vectorized_function | |
401 #define TARGET_VECTORIZE_BUILTIN_CONVERSION \ | |
402 default_builtin_vectorized_conversion | |
403 #define TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN 0 | |
404 #define TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD 0 | |
405 #define TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST 0 | |
406 #define TARGET_VECTOR_ALIGNMENT_REACHABLE \ | |
407 default_builtin_vector_alignment_reachable | |
408 #define TARGET_VECTORIZE_BUILTIN_VEC_PERM 0 | |
409 #define TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK \ | |
410 hook_bool_tree_tree_true | |
411 #define TARGET_SUPPORT_VECTOR_MISALIGNMENT \ | |
412 default_builtin_support_vector_misalignment | |
413 | |
414 | |
415 #define TARGET_VECTORIZE \ | |
416 { \ | |
417 TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD, \ | |
418 TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION, \ | |
419 TARGET_VECTORIZE_BUILTIN_CONVERSION, \ | |
420 TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN, \ | |
421 TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD, \ | |
422 TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST, \ | |
423 TARGET_VECTOR_ALIGNMENT_REACHABLE, \ | |
424 TARGET_VECTORIZE_BUILTIN_VEC_PERM, \ | |
425 TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK, \ | |
426 TARGET_SUPPORT_VECTOR_MISALIGNMENT \ | |
427 } | |
428 | |
429 #define TARGET_DEFAULT_TARGET_FLAGS 0 | |
430 | |
431 #define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE hook_void_void | |
432 | |
433 #define TARGET_HANDLE_OPTION hook_bool_size_t_constcharptr_int_true | |
434 #define TARGET_HELP NULL | |
435 | |
436 /* In except.c */ | |
437 #define TARGET_EH_RETURN_FILTER_MODE default_eh_return_filter_mode | |
438 | |
439 /* In libgcc2.c */ | |
440 #define TARGET_LIBGCC_CMP_RETURN_MODE default_libgcc_cmp_return_mode | |
441 #define TARGET_LIBGCC_SHIFT_COUNT_MODE default_libgcc_shift_count_mode | |
442 | |
443 /* In unwind-generic.h. */ | |
444 #define TARGET_UNWIND_WORD_MODE default_unwind_word_mode | |
445 | |
446 /* In tree.c. */ | |
447 #define TARGET_MERGE_DECL_ATTRIBUTES merge_decl_attributes | |
448 #define TARGET_MERGE_TYPE_ATTRIBUTES merge_type_attributes | |
449 #define TARGET_ATTRIBUTE_TABLE NULL | |
450 | |
451 /* In cse.c. */ | |
452 #define TARGET_ADDRESS_COST default_address_cost | |
453 #define TARGET_CONST_ANCHOR 0 | |
454 | |
455 /* In builtins.c. */ | |
456 #define TARGET_INIT_BUILTINS hook_void_void | |
457 #define TARGET_EXPAND_BUILTIN default_expand_builtin | |
458 #define TARGET_RESOLVE_OVERLOADED_BUILTIN NULL | |
459 #define TARGET_FOLD_BUILTIN hook_tree_tree_int_treep_bool_null | |
460 #define TARGET_BUILTIN_DECL NULL | |
461 | |
462 /* In tree-ssa-math-opts.c */ | |
463 #define TARGET_BUILTIN_RECIPROCAL default_builtin_reciprocal | |
464 | |
465 /* In varasm.c. */ | |
466 #ifndef TARGET_SECTION_TYPE_FLAGS | |
467 #define TARGET_SECTION_TYPE_FLAGS default_section_type_flags | |
468 #endif | |
469 | |
470 #ifndef TARGET_STRIP_NAME_ENCODING | |
471 #define TARGET_STRIP_NAME_ENCODING default_strip_name_encoding | |
472 #endif | |
473 | |
474 #ifndef TARGET_BINDS_LOCAL_P | |
475 #define TARGET_BINDS_LOCAL_P default_binds_local_p | |
476 #endif | |
477 | |
478 #ifndef TARGET_SHIFT_TRUNCATION_MASK | |
479 #define TARGET_SHIFT_TRUNCATION_MASK default_shift_truncation_mask | |
480 #endif | |
481 | |
482 #ifndef TARGET_MIN_DIVISIONS_FOR_RECIP_MUL | |
483 #define TARGET_MIN_DIVISIONS_FOR_RECIP_MUL default_min_divisions_for_recip_mul | |
484 #endif | |
485 | |
486 #ifndef TARGET_MODE_REP_EXTENDED | |
487 #define TARGET_MODE_REP_EXTENDED default_mode_rep_extended | |
488 #endif | |
489 | |
490 #ifndef TARGET_VALID_POINTER_MODE | |
491 #define TARGET_VALID_POINTER_MODE default_valid_pointer_mode | |
492 #endif | |
493 | |
494 #ifndef TARGET_ADDR_SPACE_POINTER_MODE | |
495 #define TARGET_ADDR_SPACE_POINTER_MODE default_addr_space_pointer_mode | |
496 #endif | |
497 | |
498 #ifndef TARGET_ADDR_SPACE_ADDRESS_MODE | |
499 #define TARGET_ADDR_SPACE_ADDRESS_MODE default_addr_space_address_mode | |
500 #endif | |
501 | |
502 #ifndef TARGET_ADDR_SPACE_VALID_POINTER_MODE | |
503 #define TARGET_ADDR_SPACE_VALID_POINTER_MODE \ | |
504 default_addr_space_valid_pointer_mode | |
505 #endif | |
506 | |
507 #ifndef TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P | |
508 #define TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P \ | |
509 default_addr_space_legitimate_address_p | |
510 #endif | |
511 | |
512 #ifndef TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS | |
513 #define TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS \ | |
514 default_addr_space_legitimize_address | |
515 #endif | |
516 | |
517 #ifndef TARGET_ADDR_SPACE_SUBSET_P | |
518 #define TARGET_ADDR_SPACE_SUBSET_P default_addr_space_subset_p | |
519 #endif | |
520 | |
521 #ifndef TARGET_ADDR_SPACE_CONVERT | |
522 #define TARGET_ADDR_SPACE_CONVERT default_addr_space_convert | |
523 #endif | |
524 | |
525 #define TARGET_ADDR_SPACE_HOOKS \ | |
526 { \ | |
527 TARGET_ADDR_SPACE_POINTER_MODE, \ | |
528 TARGET_ADDR_SPACE_ADDRESS_MODE, \ | |
529 TARGET_ADDR_SPACE_VALID_POINTER_MODE, \ | |
530 TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P, \ | |
531 TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS, \ | |
532 TARGET_ADDR_SPACE_SUBSET_P, \ | |
533 TARGET_ADDR_SPACE_CONVERT, \ | |
534 } | |
535 | |
536 #ifndef TARGET_SCALAR_MODE_SUPPORTED_P | |
537 #define TARGET_SCALAR_MODE_SUPPORTED_P default_scalar_mode_supported_p | |
538 #endif | |
539 | |
540 #ifndef TARGET_DECIMAL_FLOAT_SUPPORTED_P | |
541 #define TARGET_DECIMAL_FLOAT_SUPPORTED_P default_decimal_float_supported_p | |
542 #endif | |
543 | |
544 #ifndef TARGET_FIXED_POINT_SUPPORTED_P | |
545 #define TARGET_FIXED_POINT_SUPPORTED_P default_fixed_point_supported_p | |
546 #endif | |
547 | |
548 #ifndef TARGET_VECTOR_MODE_SUPPORTED_P | |
549 #define TARGET_VECTOR_MODE_SUPPORTED_P hook_bool_mode_false | |
550 #endif | |
551 | |
552 #ifndef TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P | |
553 #define TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P hook_bool_mode_false | |
554 #endif | |
555 | |
556 /* In hooks.c. */ | |
557 #define TARGET_CANNOT_MODIFY_JUMPS_P hook_bool_void_false | |
558 #define TARGET_BRANCH_TARGET_REGISTER_CLASS \ | |
559 default_branch_target_register_class | |
560 #define TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED hook_bool_bool_false | |
561 #define TARGET_HAVE_CONDITIONAL_EXECUTION default_have_conditional_execution | |
562 #define TARGET_LOOP_UNROLL_ADJUST NULL | |
563 #define TARGET_CANNOT_FORCE_CONST_MEM hook_bool_rtx_false | |
564 #define TARGET_CANNOT_COPY_INSN_P NULL | |
565 #define TARGET_COMMUTATIVE_P hook_bool_const_rtx_commutative_p | |
566 #define TARGET_LEGITIMIZE_ADDRESS default_legitimize_address | |
567 #define TARGET_DELEGITIMIZE_ADDRESS delegitimize_mem_from_attrs | |
568 #define TARGET_LEGITIMATE_ADDRESS_P default_legitimate_address_p | |
569 #define TARGET_USE_BLOCKS_FOR_CONSTANT_P hook_bool_mode_const_rtx_false | |
570 #define TARGET_MIN_ANCHOR_OFFSET 0 | |
571 #define TARGET_MAX_ANCHOR_OFFSET 0 | |
572 #define TARGET_USE_ANCHORS_FOR_SYMBOL_P default_use_anchors_for_symbol_p | |
573 #define TARGET_FUNCTION_OK_FOR_SIBCALL hook_bool_tree_tree_false | |
574 #define TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P hook_bool_const_tree_false | |
575 #define TARGET_COMP_TYPE_ATTRIBUTES hook_int_const_tree_const_tree_1 | |
576 #ifndef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES | |
577 #define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES hook_void_tree | |
578 #endif | |
579 #define TARGET_INSERT_ATTRIBUTES hook_void_tree_treeptr | |
580 #define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P hook_bool_const_tree_false | |
581 #define TARGET_MS_BITFIELD_LAYOUT_P hook_bool_const_tree_false | |
582 #define TARGET_ALIGN_ANON_BITFIELD hook_bool_void_false | |
583 #define TARGET_NARROW_VOLATILE_BITFIELD hook_bool_void_false | |
584 #define TARGET_RTX_COSTS hook_bool_rtx_int_int_intp_bool_false | |
585 #define TARGET_MANGLE_TYPE hook_constcharptr_const_tree_null | |
586 #define TARGET_ALLOCATE_INITIAL_VALUE NULL | |
587 | |
588 #define TARGET_UNSPEC_MAY_TRAP_P default_unspec_may_trap_p | |
589 | |
590 #ifndef TARGET_SET_CURRENT_FUNCTION | |
591 #define TARGET_SET_CURRENT_FUNCTION hook_void_tree | |
592 #endif | |
593 | |
594 #ifndef TARGET_INIT_LIBFUNCS | |
595 #define TARGET_INIT_LIBFUNCS hook_void_void | |
596 #endif | |
597 | |
598 #ifndef TARGET_IN_SMALL_DATA_P | |
599 #define TARGET_IN_SMALL_DATA_P hook_bool_const_tree_false | |
600 #endif | |
601 | |
602 #ifndef TARGET_MODE_DEPENDENT_ADDRESS_P | |
603 #define TARGET_MODE_DEPENDENT_ADDRESS_P default_mode_dependent_address_p | |
604 #endif | |
605 | |
606 #ifndef TARGET_MANGLE_DECL_ASSEMBLER_NAME | |
607 #define TARGET_MANGLE_DECL_ASSEMBLER_NAME default_mangle_decl_assembler_name | |
608 #endif | |
609 | |
610 #ifndef TARGET_ENCODE_SECTION_INFO | |
611 #define TARGET_ENCODE_SECTION_INFO default_encode_section_info | |
612 #endif | |
613 | |
614 #ifndef TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN | |
615 #define TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN hook_invalid_arg_for_unprototyped_fn | |
616 #endif | |
617 | |
618 #define TARGET_INVALID_CONVERSION hook_constcharptr_const_tree_const_tree_null | |
619 #define TARGET_INVALID_UNARY_OP hook_constcharptr_int_const_tree_null | |
620 #define TARGET_INVALID_BINARY_OP hook_constcharptr_int_const_tree_const_tree_null | |
621 #define TARGET_INVALID_PARAMETER_TYPE hook_constcharptr_const_tree_null | |
622 #define TARGET_INVALID_RETURN_TYPE hook_constcharptr_const_tree_null | |
623 #define TARGET_PROMOTED_TYPE hook_tree_const_tree_null | |
624 #define TARGET_CONVERT_TO_TYPE hook_tree_tree_tree_null | |
625 | |
626 #define TARGET_FIXED_CONDITION_CODE_REGS hook_bool_uintp_uintp_false | |
627 | |
628 #define TARGET_CC_MODES_COMPATIBLE default_cc_modes_compatible | |
629 | |
630 #define TARGET_MACHINE_DEPENDENT_REORG 0 | |
631 | |
632 #define TARGET_BUILD_BUILTIN_VA_LIST std_build_builtin_va_list | |
633 #define TARGET_FN_ABI_VA_LIST std_fn_abi_va_list | |
634 #define TARGET_CANONICAL_VA_LIST_TYPE std_canonical_va_list_type | |
635 #define TARGET_EXPAND_BUILTIN_VA_START 0 | |
636 | |
637 #define TARGET_GET_PCH_VALIDITY default_get_pch_validity | |
638 #define TARGET_PCH_VALID_P default_pch_valid_p | |
639 #define TARGET_CHECK_PCH_TARGET_FLAGS NULL | |
640 | |
641 #define TARGET_DEFAULT_SHORT_ENUMS hook_bool_void_false | |
642 | |
643 #define TARGET_BUILTIN_SETJMP_FRAME_VALUE default_builtin_setjmp_frame_value | |
644 | |
645 #define TARGET_MD_ASM_CLOBBERS hook_tree_tree_tree_tree_3rd_identity | |
646 | |
647 #define TARGET_DWARF_CALLING_CONVENTION hook_int_const_tree_0 | |
648 | |
649 #define TARGET_DWARF_HANDLE_FRAME_UNSPEC 0 | |
650 | |
651 #define TARGET_STDARG_OPTIMIZE_HOOK 0 | |
652 | |
653 #define TARGET_STACK_PROTECT_GUARD default_stack_protect_guard | |
654 #define TARGET_STACK_PROTECT_FAIL default_external_stack_protect_fail | |
655 | |
656 #define TARGET_ARM_EABI_UNWINDER false | |
657 | |
658 #define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode | |
659 #define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_false | |
660 | |
661 #define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null | |
662 #define TARGET_RETURN_IN_MEMORY default_return_in_memory | |
663 #define TARGET_RETURN_IN_MSB hook_bool_const_tree_false | |
664 | |
665 #define TARGET_EXPAND_BUILTIN_SAVEREGS default_expand_builtin_saveregs | |
666 #define TARGET_SETUP_INCOMING_VARARGS default_setup_incoming_varargs | |
667 #define TARGET_STRICT_ARGUMENT_NAMING hook_bool_CUMULATIVE_ARGS_false | |
668 #define TARGET_PRETEND_OUTGOING_VARARGS_NAMED \ | |
669 default_pretend_outgoing_varargs_named | |
670 #define TARGET_SPLIT_COMPLEX_ARG NULL | |
671 | |
672 #define TARGET_GIMPLIFY_VA_ARG_EXPR std_gimplify_va_arg_expr | |
673 #define TARGET_PASS_BY_REFERENCE hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false | |
674 | |
675 #define TARGET_RELAXED_ORDERING false | |
676 | |
677 #define TARGET_MUST_PASS_IN_STACK must_pass_in_stack_var_size_or_pad | |
678 #define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false | |
679 #define TARGET_ARG_PARTIAL_BYTES hook_int_CUMULATIVE_ARGS_mode_tree_bool_0 | |
680 | |
681 #define TARGET_FUNCTION_VALUE default_function_value | |
682 #define TARGET_LIBCALL_VALUE default_libcall_value | |
683 #define TARGET_FUNCTION_VALUE_REGNO_P default_function_value_regno_p | |
684 #define TARGET_INTERNAL_ARG_POINTER default_internal_arg_pointer | |
685 #define TARGET_UPDATE_STACK_BOUNDARY NULL | |
686 #define TARGET_GET_DRAP_RTX NULL | |
687 #define TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS hook_bool_void_true | |
688 #define TARGET_STATIC_CHAIN default_static_chain | |
689 #define TARGET_TRAMPOLINE_INIT default_trampoline_init | |
690 #define TARGET_TRAMPOLINE_ADJUST_ADDRESS NULL | |
691 | |
692 #define TARGET_CALLS { \ | |
693 TARGET_PROMOTE_FUNCTION_MODE, \ | |
694 TARGET_PROMOTE_PROTOTYPES, \ | |
695 TARGET_STRUCT_VALUE_RTX, \ | |
696 TARGET_RETURN_IN_MEMORY, \ | |
697 TARGET_RETURN_IN_MSB, \ | |
698 TARGET_PASS_BY_REFERENCE, \ | |
699 TARGET_EXPAND_BUILTIN_SAVEREGS, \ | |
700 TARGET_SETUP_INCOMING_VARARGS, \ | |
701 TARGET_STRICT_ARGUMENT_NAMING, \ | |
702 TARGET_PRETEND_OUTGOING_VARARGS_NAMED, \ | |
703 TARGET_SPLIT_COMPLEX_ARG, \ | |
704 TARGET_MUST_PASS_IN_STACK, \ | |
705 TARGET_CALLEE_COPIES, \ | |
706 TARGET_ARG_PARTIAL_BYTES, \ | |
707 TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN, \ | |
708 TARGET_FUNCTION_VALUE, \ | |
709 TARGET_LIBCALL_VALUE, \ | |
710 TARGET_FUNCTION_VALUE_REGNO_P, \ | |
711 TARGET_INTERNAL_ARG_POINTER, \ | |
712 TARGET_UPDATE_STACK_BOUNDARY, \ | |
713 TARGET_GET_DRAP_RTX, \ | |
714 TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS, \ | |
715 TARGET_STATIC_CHAIN, \ | |
716 TARGET_TRAMPOLINE_INIT, \ | |
717 TARGET_TRAMPOLINE_ADJUST_ADDRESS \ | |
718 } | |
719 | |
720 #ifndef TARGET_UNWIND_TABLES_DEFAULT | |
721 #define TARGET_UNWIND_TABLES_DEFAULT false | |
722 #endif | |
723 | |
724 #ifndef TARGET_HANDLE_PRAGMA_EXTERN_PREFIX | |
725 #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 0 | |
726 #endif | |
727 | |
728 #ifdef IRA_COVER_CLASSES | |
729 #define TARGET_IRA_COVER_CLASSES default_ira_cover_classes | |
730 #else | |
731 #define TARGET_IRA_COVER_CLASSES 0 | 108 #define TARGET_IRA_COVER_CLASSES 0 |
732 #endif | 109 #endif |
733 | 110 |
734 #ifndef TARGET_SECONDARY_RELOAD | 111 #if !defined (TARGET_FUNCTION_INCOMING_ARG) && !defined (FUNCTION_INCOMING_ARG) |
735 #define TARGET_SECONDARY_RELOAD default_secondary_reload | 112 #define TARGET_FUNCTION_INCOMING_ARG TARGET_FUNCTION_ARG |
736 #endif | 113 #endif |
737 | 114 |
738 #ifndef TARGET_EXPAND_TO_RTL_HOOK | 115 #include "target-hooks-def.h" |
739 #define TARGET_EXPAND_TO_RTL_HOOK hook_void_void | |
740 #endif | |
741 | |
742 #ifndef TARGET_INSTANTIATE_DECLS | |
743 #define TARGET_INSTANTIATE_DECLS hook_void_void | |
744 #endif | |
745 | |
746 #ifndef TARGET_HARD_REGNO_SCRATCH_OK | |
747 #define TARGET_HARD_REGNO_SCRATCH_OK default_hard_regno_scratch_ok | |
748 #endif | |
749 | |
750 #ifndef TARGET_CASE_VALUES_THRESHOLD | |
751 #define TARGET_CASE_VALUES_THRESHOLD default_case_values_threshold | |
752 #endif | |
753 | |
754 #ifndef TARGET_FRAME_POINTER_REQUIRED | |
755 #define TARGET_FRAME_POINTER_REQUIRED hook_bool_void_false | |
756 #endif | |
757 | |
758 #ifndef TARGET_CAN_ELIMINATE | |
759 #define TARGET_CAN_ELIMINATE hook_bool_const_int_const_int_true | |
760 #endif | |
761 | |
762 /* C specific. */ | |
763 #ifndef TARGET_C_MODE_FOR_SUFFIX | |
764 #define TARGET_C_MODE_FOR_SUFFIX default_mode_for_suffix | |
765 #endif | |
766 | |
767 #define TARGET_C \ | |
768 { \ | |
769 TARGET_C_MODE_FOR_SUFFIX \ | |
770 } | |
771 | |
772 /* C++ specific. */ | |
773 #ifndef TARGET_CXX_GUARD_TYPE | |
774 #define TARGET_CXX_GUARD_TYPE default_cxx_guard_type | |
775 #endif | |
776 | |
777 #ifndef TARGET_CXX_GUARD_MASK_BIT | |
778 #define TARGET_CXX_GUARD_MASK_BIT hook_bool_void_false | |
779 #endif | |
780 | |
781 #ifndef TARGET_CXX_GET_COOKIE_SIZE | |
782 #define TARGET_CXX_GET_COOKIE_SIZE default_cxx_get_cookie_size | |
783 #endif | |
784 | |
785 #ifndef TARGET_CXX_COOKIE_HAS_SIZE | |
786 #define TARGET_CXX_COOKIE_HAS_SIZE hook_bool_void_false | |
787 #endif | |
788 | |
789 #ifndef TARGET_CXX_IMPORT_EXPORT_CLASS | |
790 #define TARGET_CXX_IMPORT_EXPORT_CLASS NULL | |
791 #endif | |
792 | |
793 #ifndef TARGET_CXX_CDTOR_RETURNS_THIS | |
794 #define TARGET_CXX_CDTOR_RETURNS_THIS hook_bool_void_false | |
795 #endif | |
796 | |
797 #ifndef TARGET_CXX_KEY_METHOD_MAY_BE_INLINE | |
798 #define TARGET_CXX_KEY_METHOD_MAY_BE_INLINE hook_bool_void_true | |
799 #endif | |
800 | |
801 #ifndef TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY | |
802 #define TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY hook_void_tree | |
803 #endif | |
804 | |
805 #ifndef TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT | |
806 #define TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT hook_bool_void_true | |
807 #endif | |
808 | |
809 #ifndef TARGET_CXX_LIBRARY_RTTI_COMDAT | |
810 #define TARGET_CXX_LIBRARY_RTTI_COMDAT hook_bool_void_true | |
811 #endif | |
812 | |
813 #ifndef TARGET_CXX_USE_AEABI_ATEXIT | |
814 #define TARGET_CXX_USE_AEABI_ATEXIT hook_bool_void_false | |
815 #endif | |
816 | |
817 #ifndef TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT | |
818 #define TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT hook_bool_void_false | |
819 #endif | |
820 | |
821 #ifndef TARGET_CXX_ADJUST_CLASS_AT_DEFINITION | |
822 #define TARGET_CXX_ADJUST_CLASS_AT_DEFINITION hook_void_tree | |
823 #endif | |
824 | |
825 #define TARGET_CXX \ | |
826 { \ | |
827 TARGET_CXX_GUARD_TYPE, \ | |
828 TARGET_CXX_GUARD_MASK_BIT, \ | |
829 TARGET_CXX_GET_COOKIE_SIZE, \ | |
830 TARGET_CXX_COOKIE_HAS_SIZE, \ | |
831 TARGET_CXX_IMPORT_EXPORT_CLASS, \ | |
832 TARGET_CXX_CDTOR_RETURNS_THIS, \ | |
833 TARGET_CXX_KEY_METHOD_MAY_BE_INLINE, \ | |
834 TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY, \ | |
835 TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT, \ | |
836 TARGET_CXX_LIBRARY_RTTI_COMDAT, \ | |
837 TARGET_CXX_USE_AEABI_ATEXIT, \ | |
838 TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT, \ | |
839 TARGET_CXX_ADJUST_CLASS_AT_DEFINITION \ | |
840 } | |
841 | |
842 /* EMUTLS specific */ | |
843 #ifndef TARGET_EMUTLS_GET_ADDRESS | |
844 #define TARGET_EMUTLS_GET_ADDRESS "__builtin___emutls_get_address" | |
845 #endif | |
846 | |
847 #ifndef TARGET_EMUTLS_REGISTER_COMMON | |
848 #define TARGET_EMUTLS_REGISTER_COMMON "__builtin___emutls_register_common" | |
849 #endif | |
850 | |
851 #ifndef TARGET_EMUTLS_VAR_SECTION | |
852 #define TARGET_EMUTLS_VAR_SECTION NULL | |
853 #endif | |
854 | |
855 #ifndef TARGET_EMUTLS_TMPL_SECTION | |
856 #define TARGET_EMUTLS_TMPL_SECTION NULL | |
857 #endif | |
858 | |
859 #ifndef TARGET_EMUTLS_VAR_PREFIX | |
860 #define TARGET_EMUTLS_VAR_PREFIX NULL | |
861 #endif | |
862 | |
863 #ifndef TARGET_EMUTLS_TMPL_PREFIX | |
864 #define TARGET_EMUTLS_TMPL_PREFIX NULL | |
865 #endif | |
866 | |
867 #ifndef TARGET_EMUTLS_VAR_FIELDS | |
868 #define TARGET_EMUTLS_VAR_FIELDS default_emutls_var_fields | |
869 #endif | |
870 | |
871 #ifndef TARGET_EMUTLS_VAR_INIT | |
872 #define TARGET_EMUTLS_VAR_INIT default_emutls_var_init | |
873 #endif | |
874 | |
875 #ifndef TARGET_EMUTLS_VAR_ALIGN_FIXED | |
876 #define TARGET_EMUTLS_VAR_ALIGN_FIXED false | |
877 #endif | |
878 | |
879 #ifndef TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS | |
880 #define TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS false | |
881 #endif | |
882 | |
883 #define TARGET_EMUTLS \ | |
884 { \ | |
885 TARGET_EMUTLS_GET_ADDRESS, \ | |
886 TARGET_EMUTLS_REGISTER_COMMON, \ | |
887 TARGET_EMUTLS_VAR_SECTION, \ | |
888 TARGET_EMUTLS_TMPL_SECTION, \ | |
889 TARGET_EMUTLS_VAR_PREFIX, \ | |
890 TARGET_EMUTLS_TMPL_PREFIX, \ | |
891 TARGET_EMUTLS_VAR_FIELDS, \ | |
892 TARGET_EMUTLS_VAR_INIT, \ | |
893 TARGET_EMUTLS_VAR_ALIGN_FIXED, \ | |
894 TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS \ | |
895 } | |
896 | |
897 /* Function specific option attribute support. */ | |
898 #ifndef TARGET_OPTION_VALID_ATTRIBUTE_P | |
899 #define TARGET_OPTION_VALID_ATTRIBUTE_P \ | |
900 default_target_option_valid_attribute_p | |
901 #endif | |
902 | |
903 #ifndef TARGET_OPTION_SAVE | |
904 #define TARGET_OPTION_SAVE NULL | |
905 #endif | |
906 | |
907 #ifndef TARGET_OPTION_RESTORE | |
908 #define TARGET_OPTION_RESTORE NULL | |
909 #endif | |
910 | |
911 #ifndef TARGET_OPTION_PRINT | |
912 #define TARGET_OPTION_PRINT NULL | |
913 #endif | |
914 | |
915 #ifndef TARGET_OPTION_PRAGMA_PARSE | |
916 #define TARGET_OPTION_PRAGMA_PARSE default_target_option_pragma_parse | |
917 #endif | |
918 | |
919 #ifndef TARGET_CAN_INLINE_P | |
920 #define TARGET_CAN_INLINE_P default_target_can_inline_p | |
921 #endif | |
922 | |
923 #define TARGET_OPTION_HOOKS \ | |
924 { \ | |
925 TARGET_OPTION_VALID_ATTRIBUTE_P, \ | |
926 TARGET_OPTION_SAVE, \ | |
927 TARGET_OPTION_RESTORE, \ | |
928 TARGET_OPTION_PRINT, \ | |
929 TARGET_OPTION_PRAGMA_PARSE, \ | |
930 TARGET_CAN_INLINE_P, \ | |
931 } | |
932 | |
933 /* The whole shebang. */ | |
934 #define TARGET_INITIALIZER \ | |
935 { \ | |
936 TARGET_ASM_OUT, \ | |
937 TARGET_SCHED, \ | |
938 TARGET_VECTORIZE, \ | |
939 TARGET_DEFAULT_TARGET_FLAGS, \ | |
940 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE, \ | |
941 TARGET_HANDLE_OPTION, \ | |
942 TARGET_HELP, \ | |
943 TARGET_EH_RETURN_FILTER_MODE, \ | |
944 TARGET_LIBGCC_CMP_RETURN_MODE, \ | |
945 TARGET_LIBGCC_SHIFT_COUNT_MODE, \ | |
946 TARGET_UNWIND_WORD_MODE, \ | |
947 TARGET_MERGE_DECL_ATTRIBUTES, \ | |
948 TARGET_MERGE_TYPE_ATTRIBUTES, \ | |
949 TARGET_ATTRIBUTE_TABLE, \ | |
950 TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P, \ | |
951 TARGET_COMP_TYPE_ATTRIBUTES, \ | |
952 TARGET_SET_DEFAULT_TYPE_ATTRIBUTES, \ | |
953 TARGET_INSERT_ATTRIBUTES, \ | |
954 TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P, \ | |
955 TARGET_MS_BITFIELD_LAYOUT_P, \ | |
956 TARGET_DECIMAL_FLOAT_SUPPORTED_P, \ | |
957 TARGET_FIXED_POINT_SUPPORTED_P, \ | |
958 TARGET_ALIGN_ANON_BITFIELD, \ | |
959 TARGET_NARROW_VOLATILE_BITFIELD, \ | |
960 TARGET_INIT_BUILTINS, \ | |
961 TARGET_BUILTIN_DECL, \ | |
962 TARGET_EXPAND_BUILTIN, \ | |
963 TARGET_RESOLVE_OVERLOADED_BUILTIN, \ | |
964 TARGET_FOLD_BUILTIN, \ | |
965 TARGET_BUILTIN_RECIPROCAL, \ | |
966 TARGET_MANGLE_TYPE, \ | |
967 TARGET_INIT_LIBFUNCS, \ | |
968 TARGET_SECTION_TYPE_FLAGS, \ | |
969 TARGET_CANNOT_MODIFY_JUMPS_P, \ | |
970 TARGET_BRANCH_TARGET_REGISTER_CLASS, \ | |
971 TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED, \ | |
972 TARGET_HAVE_CONDITIONAL_EXECUTION, \ | |
973 TARGET_LOOP_UNROLL_ADJUST, \ | |
974 TARGET_CANNOT_FORCE_CONST_MEM, \ | |
975 TARGET_CANNOT_COPY_INSN_P, \ | |
976 TARGET_COMMUTATIVE_P, \ | |
977 TARGET_MODE_DEPENDENT_ADDRESS_P, \ | |
978 TARGET_LEGITIMIZE_ADDRESS, \ | |
979 TARGET_DELEGITIMIZE_ADDRESS, \ | |
980 TARGET_LEGITIMATE_ADDRESS_P, \ | |
981 TARGET_USE_BLOCKS_FOR_CONSTANT_P, \ | |
982 TARGET_MIN_ANCHOR_OFFSET, \ | |
983 TARGET_MAX_ANCHOR_OFFSET, \ | |
984 TARGET_USE_ANCHORS_FOR_SYMBOL_P, \ | |
985 TARGET_FUNCTION_OK_FOR_SIBCALL, \ | |
986 TARGET_SET_CURRENT_FUNCTION, \ | |
987 TARGET_IN_SMALL_DATA_P, \ | |
988 TARGET_BINDS_LOCAL_P, \ | |
989 TARGET_MANGLE_DECL_ASSEMBLER_NAME, \ | |
990 TARGET_ENCODE_SECTION_INFO, \ | |
991 TARGET_STRIP_NAME_ENCODING, \ | |
992 TARGET_SHIFT_TRUNCATION_MASK, \ | |
993 TARGET_MIN_DIVISIONS_FOR_RECIP_MUL, \ | |
994 TARGET_MODE_REP_EXTENDED, \ | |
995 TARGET_VALID_POINTER_MODE, \ | |
996 TARGET_ADDR_SPACE_HOOKS, \ | |
997 TARGET_SCALAR_MODE_SUPPORTED_P, \ | |
998 TARGET_VECTOR_MODE_SUPPORTED_P, \ | |
999 TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P, \ | |
1000 TARGET_RTX_COSTS, \ | |
1001 TARGET_ADDRESS_COST, \ | |
1002 TARGET_ALLOCATE_INITIAL_VALUE, \ | |
1003 TARGET_UNSPEC_MAY_TRAP_P, \ | |
1004 TARGET_DWARF_REGISTER_SPAN, \ | |
1005 TARGET_INIT_DWARF_REG_SIZES_EXTRA, \ | |
1006 TARGET_FIXED_CONDITION_CODE_REGS, \ | |
1007 TARGET_CC_MODES_COMPATIBLE, \ | |
1008 TARGET_MACHINE_DEPENDENT_REORG, \ | |
1009 TARGET_BUILD_BUILTIN_VA_LIST, \ | |
1010 TARGET_FN_ABI_VA_LIST, \ | |
1011 TARGET_CANONICAL_VA_LIST_TYPE, \ | |
1012 TARGET_EXPAND_BUILTIN_VA_START, \ | |
1013 TARGET_GIMPLIFY_VA_ARG_EXPR, \ | |
1014 TARGET_GET_PCH_VALIDITY, \ | |
1015 TARGET_PCH_VALID_P, \ | |
1016 TARGET_CHECK_PCH_TARGET_FLAGS, \ | |
1017 TARGET_DEFAULT_SHORT_ENUMS, \ | |
1018 TARGET_BUILTIN_SETJMP_FRAME_VALUE, \ | |
1019 TARGET_MD_ASM_CLOBBERS, \ | |
1020 TARGET_DWARF_CALLING_CONVENTION, \ | |
1021 TARGET_DWARF_HANDLE_FRAME_UNSPEC, \ | |
1022 TARGET_STDARG_OPTIMIZE_HOOK, \ | |
1023 TARGET_STACK_PROTECT_GUARD, \ | |
1024 TARGET_STACK_PROTECT_FAIL, \ | |
1025 TARGET_INVALID_WITHIN_DOLOOP, \ | |
1026 TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, \ | |
1027 TARGET_CONST_ANCHOR, \ | |
1028 TARGET_CALLS, \ | |
1029 TARGET_INVALID_CONVERSION, \ | |
1030 TARGET_INVALID_UNARY_OP, \ | |
1031 TARGET_INVALID_BINARY_OP, \ | |
1032 TARGET_INVALID_PARAMETER_TYPE, \ | |
1033 TARGET_INVALID_RETURN_TYPE, \ | |
1034 TARGET_PROMOTED_TYPE, \ | |
1035 TARGET_CONVERT_TO_TYPE, \ | |
1036 TARGET_IRA_COVER_CLASSES, \ | |
1037 TARGET_SECONDARY_RELOAD, \ | |
1038 TARGET_EXPAND_TO_RTL_HOOK, \ | |
1039 TARGET_INSTANTIATE_DECLS, \ | |
1040 TARGET_HARD_REGNO_SCRATCH_OK, \ | |
1041 TARGET_CASE_VALUES_THRESHOLD, \ | |
1042 TARGET_FRAME_POINTER_REQUIRED, \ | |
1043 TARGET_CAN_ELIMINATE, \ | |
1044 TARGET_C, \ | |
1045 TARGET_CXX, \ | |
1046 TARGET_EMUTLS, \ | |
1047 TARGET_OPTION_HOOKS, \ | |
1048 TARGET_EXTRA_LIVE_ON_ENTRY, \ | |
1049 TARGET_UNWIND_TABLES_DEFAULT, \ | |
1050 TARGET_HAVE_NAMED_SECTIONS, \ | |
1051 TARGET_HAVE_SWITCHABLE_BSS_SECTIONS, \ | |
1052 TARGET_HAVE_CTORS_DTORS, \ | |
1053 TARGET_HAVE_TLS, \ | |
1054 TARGET_HAVE_SRODATA_SECTION, \ | |
1055 TARGET_TERMINATE_DW2_EH_FRAME_INFO, \ | |
1056 TARGET_ASM_FILE_START_APP_OFF, \ | |
1057 TARGET_ASM_FILE_START_FILE_DIRECTIVE, \ | |
1058 TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, \ | |
1059 TARGET_RELAXED_ORDERING, \ | |
1060 TARGET_ARM_EABI_UNWINDER \ | |
1061 } | |
1062 | |
1063 #define TARGET_HANDLE_C_OPTION default_handle_c_option | |
1064 #define TARGETCM_INITIALIZER { TARGET_HANDLE_C_OPTION } | |
1065 | 116 |
1066 #include "hooks.h" | 117 #include "hooks.h" |
1067 #include "targhooks.h" | 118 #include "targhooks.h" |