]>
Commit | Line | Data |
---|---|---|
672a6f42 | 1 | /* Default initializers for a generic GCC target. |
e6ff3083 | 2 | Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 |
fb8cbd3c | 3 | Free Software Foundation, Inc. |
672a6f42 | 4 | |
9dcd6f09 NC |
5 | This program is free software; you can redistribute it and/or modify it |
6 | under the terms of the GNU General Public License as published by the | |
7 | Free Software Foundation; either version 3, or (at your option) any | |
8 | later version. | |
9 | ||
10 | This program is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | GNU General Public License for more details. | |
14 | ||
15 | You should have received a copy of the GNU General Public License | |
16 | along with this program; see the file COPYING3. If not see | |
17 | <http://www.gnu.org/licenses/>. | |
18 | ||
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 | |
21 | what you give them. Help stamp out software-hoarding! */ | |
672a6f42 | 22 | |
07c9d2eb | 23 | /* See target.h for a description of what this file contains and how to |
a8b997e8 | 24 | use it. |
672a6f42 | 25 | |
a8b997e8 NB |
26 | We want to have non-NULL default definitions of all hook functions, |
27 | even if they do nothing. */ | |
28 | ||
07c9d2eb SS |
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 | |
31 | definition in a #ifndef, since files include tm.h before this one. */ | |
32 | ||
b4c25db2 | 33 | /* Assembler output. */ |
fb8cbd3c | 34 | #ifndef TARGET_ASM_OPEN_PAREN |
17b53c33 | 35 | #define TARGET_ASM_OPEN_PAREN "(" |
fb8cbd3c RS |
36 | #endif |
37 | #ifndef TARGET_ASM_CLOSE_PAREN | |
17b53c33 | 38 | #define TARGET_ASM_CLOSE_PAREN ")" |
fb8cbd3c RS |
39 | #endif |
40 | ||
301d03af RS |
41 | #define TARGET_ASM_BYTE_OP "\t.byte\t" |
42 | ||
43 | #define TARGET_ASM_ALIGNED_HI_OP "\t.short\t" | |
44 | #define TARGET_ASM_ALIGNED_SI_OP "\t.long\t" | |
45 | #define TARGET_ASM_ALIGNED_DI_OP NULL | |
46 | #define TARGET_ASM_ALIGNED_TI_OP NULL | |
47 | ||
48 | /* GAS and SYSV4 assemblers accept these. */ | |
4a023207 | 49 | #if defined (OBJECT_FORMAT_ELF) |
301d03af RS |
50 | #define TARGET_ASM_UNALIGNED_HI_OP "\t.2byte\t" |
51 | #define TARGET_ASM_UNALIGNED_SI_OP "\t.4byte\t" | |
52 | #define TARGET_ASM_UNALIGNED_DI_OP "\t.8byte\t" | |
53 | #define TARGET_ASM_UNALIGNED_TI_OP NULL | |
54 | #else | |
55 | #define TARGET_ASM_UNALIGNED_HI_OP NULL | |
56 | #define TARGET_ASM_UNALIGNED_SI_OP NULL | |
57 | #define TARGET_ASM_UNALIGNED_DI_OP NULL | |
58 | #define TARGET_ASM_UNALIGNED_TI_OP NULL | |
4a023207 | 59 | #endif /* OBJECT_FORMAT_ELF */ |
301d03af RS |
60 | |
61 | #define TARGET_ASM_INTEGER default_assemble_integer | |
62 | ||
5eb99654 KG |
63 | #ifndef TARGET_ASM_GLOBALIZE_LABEL |
64 | #define TARGET_ASM_GLOBALIZE_LABEL default_globalize_label | |
65 | #endif | |
4746cf84 | 66 | |
812b587e SE |
67 | #ifndef TARGET_ASM_GLOBALIZE_DECL_NAME |
68 | #define TARGET_ASM_GLOBALIZE_DECL_NAME default_globalize_decl_name | |
69 | #endif | |
70 | ||
4746cf84 MA |
71 | #ifndef TARGET_ASM_EMIT_UNWIND_LABEL |
72 | #define TARGET_ASM_EMIT_UNWIND_LABEL default_emit_unwind_label | |
73 | #endif | |
74 | ||
083cad55 EC |
75 | #ifndef TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL |
76 | #define TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL default_emit_except_table_label | |
77 | #endif | |
78 | ||
951120ea PB |
79 | #ifndef TARGET_UNWIND_EMIT |
80 | #define TARGET_UNWIND_EMIT default_unwind_emit | |
81 | #endif | |
82 | ||
4977bab6 ZW |
83 | #ifndef TARGET_ASM_INTERNAL_LABEL |
84 | #define TARGET_ASM_INTERNAL_LABEL default_internal_label | |
85 | #endif | |
5eb99654 | 86 | |
617a1b71 PB |
87 | #ifndef TARGET_ARM_TTYPE |
88 | #define TARGET_ASM_TTYPE hook_bool_rtx_false | |
89 | #endif | |
90 | ||
93638d7a | 91 | #ifndef TARGET_ASM_ASSEMBLE_VISIBILITY |
bd79540a | 92 | #define TARGET_ASM_ASSEMBLE_VISIBILITY default_assemble_visibility |
93638d7a AM |
93 | #endif |
94 | ||
08c148a8 NB |
95 | #define TARGET_ASM_FUNCTION_PROLOGUE default_function_pro_epilogue |
96 | #define TARGET_ASM_FUNCTION_EPILOGUE default_function_pro_epilogue | |
b4c25db2 NB |
97 | #define TARGET_ASM_FUNCTION_END_PROLOGUE no_asm_to_stream |
98 | #define TARGET_ASM_FUNCTION_BEGIN_EPILOGUE no_asm_to_stream | |
08c148a8 | 99 | |
9b580a0b RH |
100 | #ifndef TARGET_ASM_RELOC_RW_MASK |
101 | #define TARGET_ASM_RELOC_RW_MASK default_reloc_rw_mask | |
102 | #endif | |
103 | ||
ae46c4e0 RH |
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 | ||
ab5c8549 JJ |
112 | #ifndef TARGET_ASM_FUNCTION_RODATA_SECTION |
113 | #define TARGET_ASM_FUNCTION_RODATA_SECTION default_function_rodata_section | |
114 | #endif | |
115 | ||
b64a1b53 RH |
116 | #ifndef TARGET_ASM_SELECT_RTX_SECTION |
117 | #define TARGET_ASM_SELECT_RTX_SECTION default_select_rtx_section | |
118 | #endif | |
119 | ||
2cc07db4 RH |
120 | #if !defined(TARGET_ASM_CONSTRUCTOR) && !defined(USE_COLLECT2) |
121 | # ifdef CTORS_SECTION_ASM_OP | |
122 | # define TARGET_ASM_CONSTRUCTOR default_ctor_section_asm_out_constructor | |
123 | # else | |
124 | # ifdef TARGET_ASM_NAMED_SECTION | |
125 | # define TARGET_ASM_CONSTRUCTOR default_named_section_asm_out_constructor | |
126 | # else | |
127 | # define TARGET_ASM_CONSTRUCTOR default_stabs_asm_out_constructor | |
128 | # endif | |
129 | # endif | |
130 | #endif | |
131 | ||
132 | #if !defined(TARGET_ASM_DESTRUCTOR) && !defined(USE_COLLECT2) | |
133 | # ifdef DTORS_SECTION_ASM_OP | |
134 | # define TARGET_ASM_DESTRUCTOR default_dtor_section_asm_out_destructor | |
135 | # else | |
136 | # ifdef TARGET_ASM_NAMED_SECTION | |
137 | # define TARGET_ASM_DESTRUCTOR default_named_section_asm_out_destructor | |
138 | # else | |
139 | # define TARGET_ASM_DESTRUCTOR default_stabs_asm_out_destructor | |
140 | # endif | |
141 | # endif | |
142 | #endif | |
143 | ||
483ab821 | 144 | #define TARGET_ASM_OUTPUT_MI_THUNK NULL |
3101faab | 145 | #define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_false |
483ab821 | 146 | |
2eab15c9 PE |
147 | #if !defined(TARGET_HAVE_CTORS_DTORS) |
148 | # if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR) | |
149 | # 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 | |
2cc07db4 RH |
155 | #endif |
156 | ||
434aeebb RS |
157 | #ifndef TARGET_HAVE_SWITCHABLE_BSS_SECTIONS |
158 | #define TARGET_HAVE_SWITCHABLE_BSS_SECTIONS false | |
159 | #endif | |
160 | ||
d6b5193b RS |
161 | #ifndef TARGET_ASM_INIT_SECTIONS |
162 | #define TARGET_ASM_INIT_SECTIONS hook_void_void | |
163 | #endif | |
164 | ||
7c262518 RH |
165 | #ifdef TARGET_ASM_NAMED_SECTION |
166 | #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 | ||
e7e64a25 AS |
172 | #ifndef TARGET_INVALID_WITHIN_DOLOOP |
173 | #define TARGET_INVALID_WITHIN_DOLOOP default_invalid_within_doloop | |
a71a498d AS |
174 | #endif |
175 | ||
43d9ad1d | 176 | #ifndef TARGET_VALID_DLLIMPORT_ATTRIBUTE_P |
3101faab | 177 | #define TARGET_VALID_DLLIMPORT_ATTRIBUTE_P hook_bool_const_tree_true |
43d9ad1d DS |
178 | #endif |
179 | ||
3d78f2e9 RH |
180 | #ifndef TARGET_HAVE_TLS |
181 | #define TARGET_HAVE_TLS false | |
182 | #endif | |
183 | ||
275b6d80 DE |
184 | #ifndef TARGET_HAVE_SRODATA_SECTION |
185 | #define TARGET_HAVE_SRODATA_SECTION false | |
186 | #endif | |
187 | ||
7606e68f SS |
188 | #ifndef TARGET_TERMINATE_DW2_EH_FRAME_INFO |
189 | #ifdef EH_FRAME_SECTION_NAME | |
190 | #define TARGET_TERMINATE_DW2_EH_FRAME_INFO false | |
191 | #else | |
192 | #define TARGET_TERMINATE_DW2_EH_FRAME_INFO true | |
193 | #endif | |
194 | #endif | |
195 | ||
96714395 | 196 | #define TARGET_DWARF_REGISTER_SPAN hook_rtx_rtx_null |
37ea0b7e | 197 | #define TARGET_INIT_DWARF_REG_SIZES_EXTRA hook_void_tree |
96714395 | 198 | |
1bc7c5b6 ZW |
199 | #ifndef TARGET_ASM_FILE_START |
200 | #define TARGET_ASM_FILE_START default_file_start | |
201 | #endif | |
202 | ||
a5fe455b ZW |
203 | #ifndef TARGET_ASM_FILE_END |
204 | #define TARGET_ASM_FILE_END hook_void_void | |
205 | #endif | |
206 | ||
912f2dac DB |
207 | #ifndef TARGET_EXTRA_LIVE_ON_ENTRY |
208 | #define TARGET_EXTRA_LIVE_ON_ENTRY hook_void_bitmap | |
209 | #endif | |
210 | ||
1bc7c5b6 ZW |
211 | #ifndef TARGET_ASM_FILE_START_APP_OFF |
212 | #define TARGET_ASM_FILE_START_APP_OFF false | |
213 | #endif | |
214 | ||
215 | #ifndef TARGET_ASM_FILE_START_FILE_DIRECTIVE | |
216 | #define TARGET_ASM_FILE_START_FILE_DIRECTIVE false | |
217 | #endif | |
218 | ||
6773a41c RO |
219 | #ifndef TARGET_ASM_EXTERNAL_LIBCALL |
220 | #define TARGET_ASM_EXTERNAL_LIBCALL default_external_libcall | |
221 | #endif | |
222 | ||
8e3e233b DP |
223 | #ifndef TARGET_ASM_MARK_DECL_PRESERVED |
224 | #define TARGET_ASM_MARK_DECL_PRESERVED hook_void_constcharptr | |
225 | #endif | |
226 | ||
aacd3885 RS |
227 | #ifndef TARGET_ASM_OUTPUT_ANCHOR |
228 | #ifdef ASM_OUTPUT_DEF | |
229 | #define TARGET_ASM_OUTPUT_ANCHOR default_asm_output_anchor | |
230 | #else | |
231 | #define TARGET_ASM_OUTPUT_ANCHOR NULL | |
232 | #endif | |
233 | #endif | |
234 | ||
fdbe66f2 EB |
235 | #ifndef TARGET_ASM_OUTPUT_DWARF_DTPREL |
236 | #define TARGET_ASM_OUTPUT_DWARF_DTPREL NULL | |
237 | #endif | |
238 | ||
1afc5373 CF |
239 | #ifndef TARGET_ASM_FINAL_POSTSCAN_INSN |
240 | #define TARGET_ASM_FINAL_POSTSCAN_INSN NULL | |
241 | #endif | |
242 | ||
e0d9d0dd NC |
243 | #ifndef TARGET_ASM_RECORD_GCC_SWITCHES |
244 | #define TARGET_ASM_RECORD_GCC_SWITCHES NULL | |
245 | #endif | |
246 | #ifndef TARGET_ASM_RECORD_GCC_SWITCHES_SECTION | |
247 | #define TARGET_ASM_RECORD_GCC_SWITCHES_SECTION ".GCC.command.line" | |
248 | #endif | |
249 | ||
301d03af RS |
250 | #define TARGET_ASM_ALIGNED_INT_OP \ |
251 | {TARGET_ASM_ALIGNED_HI_OP, \ | |
252 | TARGET_ASM_ALIGNED_SI_OP, \ | |
253 | TARGET_ASM_ALIGNED_DI_OP, \ | |
254 | TARGET_ASM_ALIGNED_TI_OP} | |
255 | ||
256 | #define TARGET_ASM_UNALIGNED_INT_OP \ | |
257 | {TARGET_ASM_UNALIGNED_HI_OP, \ | |
258 | TARGET_ASM_UNALIGNED_SI_OP, \ | |
259 | TARGET_ASM_UNALIGNED_DI_OP, \ | |
260 | TARGET_ASM_UNALIGNED_TI_OP} | |
261 | ||
17b53c33 NB |
262 | #define TARGET_ASM_OUT {TARGET_ASM_OPEN_PAREN, \ |
263 | TARGET_ASM_CLOSE_PAREN, \ | |
301d03af RS |
264 | TARGET_ASM_BYTE_OP, \ |
265 | TARGET_ASM_ALIGNED_INT_OP, \ | |
266 | TARGET_ASM_UNALIGNED_INT_OP, \ | |
267 | TARGET_ASM_INTEGER, \ | |
5eb99654 | 268 | TARGET_ASM_GLOBALIZE_LABEL, \ |
812b587e | 269 | TARGET_ASM_GLOBALIZE_DECL_NAME, \ |
4746cf84 | 270 | TARGET_ASM_EMIT_UNWIND_LABEL, \ |
083cad55 | 271 | TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL, \ |
951120ea | 272 | TARGET_UNWIND_EMIT, \ |
4977bab6 | 273 | TARGET_ASM_INTERNAL_LABEL, \ |
617a1b71 | 274 | TARGET_ASM_TTYPE, \ |
93638d7a | 275 | TARGET_ASM_ASSEMBLE_VISIBILITY, \ |
17b53c33 | 276 | TARGET_ASM_FUNCTION_PROLOGUE, \ |
b4c25db2 NB |
277 | TARGET_ASM_FUNCTION_END_PROLOGUE, \ |
278 | TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, \ | |
7c262518 | 279 | TARGET_ASM_FUNCTION_EPILOGUE, \ |
d6b5193b | 280 | TARGET_ASM_INIT_SECTIONS, \ |
2cc07db4 | 281 | TARGET_ASM_NAMED_SECTION, \ |
9b580a0b | 282 | TARGET_ASM_RELOC_RW_MASK, \ |
ae46c4e0 | 283 | TARGET_ASM_SELECT_SECTION, \ |
b64a1b53 | 284 | TARGET_ASM_SELECT_RTX_SECTION, \ |
ae46c4e0 | 285 | TARGET_ASM_UNIQUE_SECTION, \ |
ab5c8549 | 286 | TARGET_ASM_FUNCTION_RODATA_SECTION, \ |
2cc07db4 | 287 | TARGET_ASM_CONSTRUCTOR, \ |
483ab821 MM |
288 | TARGET_ASM_DESTRUCTOR, \ |
289 | TARGET_ASM_OUTPUT_MI_THUNK, \ | |
a5fe455b | 290 | TARGET_ASM_CAN_OUTPUT_MI_THUNK, \ |
1bc7c5b6 | 291 | TARGET_ASM_FILE_START, \ |
6773a41c | 292 | TARGET_ASM_FILE_END, \ |
8e3e233b | 293 | TARGET_ASM_EXTERNAL_LIBCALL, \ |
fdbe66f2 | 294 | TARGET_ASM_MARK_DECL_PRESERVED, \ |
e0d9d0dd NC |
295 | TARGET_ASM_RECORD_GCC_SWITCHES, \ |
296 | TARGET_ASM_RECORD_GCC_SWITCHES_SECTION, \ | |
aacd3885 | 297 | TARGET_ASM_OUTPUT_ANCHOR, \ |
1afc5373 CF |
298 | TARGET_ASM_OUTPUT_DWARF_DTPREL, \ |
299 | TARGET_ASM_FINAL_POSTSCAN_INSN} | |
08c148a8 | 300 | |
c237e94a ZW |
301 | /* Scheduler hooks. All of these default to null pointers, which |
302 | haifa-sched.c looks for and handles. */ | |
303 | #define TARGET_SCHED_ADJUST_COST 0 | |
304 | #define TARGET_SCHED_ADJUST_PRIORITY 0 | |
305 | #define TARGET_SCHED_ISSUE_RATE 0 | |
306 | #define TARGET_SCHED_VARIABLE_ISSUE 0 | |
307 | #define TARGET_SCHED_INIT 0 | |
308 | #define TARGET_SCHED_FINISH 0 | |
58565a33 SKG |
309 | #define TARGET_SCHED_INIT_GLOBAL 0 |
310 | #define TARGET_SCHED_FINISH_GLOBAL 0 | |
c237e94a ZW |
311 | #define TARGET_SCHED_REORDER 0 |
312 | #define TARGET_SCHED_REORDER2 0 | |
30028c85 | 313 | #define TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK 0 |
fae15c93 VM |
314 | #define TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN 0 |
315 | #define TARGET_SCHED_DFA_PRE_CYCLE_INSN 0 | |
316 | #define TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN 0 | |
317 | #define TARGET_SCHED_DFA_POST_CYCLE_INSN 0 | |
1c3d0d93 MK |
318 | #define TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE 0 |
319 | #define TARGET_SCHED_DFA_POST_ADVANCE_CYCLE 0 | |
fae15c93 | 320 | #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD 0 |
30028c85 VM |
321 | #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD 0 |
322 | #define TARGET_SCHED_DFA_NEW_CYCLE 0 | |
569fa502 | 323 | #define TARGET_SCHED_IS_COSTLY_DEPENDENCE 0 |
e855c69d | 324 | #define TARGET_SCHED_ADJUST_COST_2 0 |
496d7bb0 | 325 | #define TARGET_SCHED_H_I_D_EXTENDED 0 |
e855c69d AB |
326 | #define TARGET_SCHED_ALLOC_SCHED_CONTEXT 0 |
327 | #define TARGET_SCHED_INIT_SCHED_CONTEXT 0 | |
328 | #define TARGET_SCHED_SET_SCHED_CONTEXT 0 | |
329 | #define TARGET_SCHED_CLEAR_SCHED_CONTEXT 0 | |
330 | #define TARGET_SCHED_FREE_SCHED_CONTEXT 0 | |
496d7bb0 MK |
331 | #define TARGET_SCHED_SPECULATE_INSN 0 |
332 | #define TARGET_SCHED_NEEDS_BLOCK_P 0 | |
e855c69d | 333 | #define TARGET_SCHED_GEN_SPEC_CHECK 0 |
496d7bb0 MK |
334 | #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC 0 |
335 | #define TARGET_SCHED_SET_SCHED_FLAGS 0 | |
e855c69d AB |
336 | #define TARGET_SCHED_GET_INSN_SPEC_DS 0 |
337 | #define TARGET_SCHED_GET_INSN_CHECKED_DS 0 | |
338 | #define TARGET_SCHED_SKIP_RTX_P 0 | |
67186a97 | 339 | #define TARGET_SCHED_SMS_RES_MII 0 |
fae15c93 VM |
340 | |
341 | #define TARGET_SCHED \ | |
342 | {TARGET_SCHED_ADJUST_COST, \ | |
343 | TARGET_SCHED_ADJUST_PRIORITY, \ | |
344 | TARGET_SCHED_ISSUE_RATE, \ | |
345 | TARGET_SCHED_VARIABLE_ISSUE, \ | |
346 | TARGET_SCHED_INIT, \ | |
347 | TARGET_SCHED_FINISH, \ | |
58565a33 SKG |
348 | TARGET_SCHED_INIT_GLOBAL, \ |
349 | TARGET_SCHED_FINISH_GLOBAL, \ | |
fae15c93 VM |
350 | TARGET_SCHED_REORDER, \ |
351 | TARGET_SCHED_REORDER2, \ | |
30028c85 | 352 | TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK, \ |
fae15c93 VM |
353 | TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, \ |
354 | TARGET_SCHED_DFA_PRE_CYCLE_INSN, \ | |
355 | TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, \ | |
1c3d0d93 MK |
356 | TARGET_SCHED_DFA_POST_CYCLE_INSN, \ |
357 | TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, \ | |
358 | TARGET_SCHED_DFA_POST_ADVANCE_CYCLE, \ | |
fae15c93 | 359 | TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, \ |
30028c85 VM |
360 | TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD, \ |
361 | TARGET_SCHED_DFA_NEW_CYCLE, \ | |
496d7bb0 | 362 | TARGET_SCHED_IS_COSTLY_DEPENDENCE, \ |
e855c69d | 363 | TARGET_SCHED_ADJUST_COST_2, \ |
496d7bb0 | 364 | TARGET_SCHED_H_I_D_EXTENDED, \ |
e855c69d AB |
365 | TARGET_SCHED_ALLOC_SCHED_CONTEXT, \ |
366 | TARGET_SCHED_INIT_SCHED_CONTEXT, \ | |
367 | TARGET_SCHED_SET_SCHED_CONTEXT, \ | |
368 | TARGET_SCHED_CLEAR_SCHED_CONTEXT, \ | |
369 | TARGET_SCHED_FREE_SCHED_CONTEXT, \ | |
496d7bb0 MK |
370 | TARGET_SCHED_SPECULATE_INSN, \ |
371 | TARGET_SCHED_NEEDS_BLOCK_P, \ | |
e855c69d | 372 | TARGET_SCHED_GEN_SPEC_CHECK, \ |
496d7bb0 | 373 | TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, \ |
67186a97 | 374 | TARGET_SCHED_SET_SCHED_FLAGS, \ |
e855c69d AB |
375 | TARGET_SCHED_GET_INSN_SPEC_DS, \ |
376 | TARGET_SCHED_GET_INSN_CHECKED_DS, \ | |
377 | TARGET_SCHED_SKIP_RTX_P, \ | |
67186a97 | 378 | TARGET_SCHED_SMS_RES_MII} |
c237e94a | 379 | |
7ccf35ed | 380 | #define TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD 0 |
6b889d89 UB |
381 | #define TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION \ |
382 | default_builtin_vectorized_function | |
383 | #define TARGET_VECTORIZE_BUILTIN_CONVERSION \ | |
384 | default_builtin_vectorized_conversion | |
89d67cca DN |
385 | #define TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN 0 |
386 | #define TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD 0 | |
e95b59d2 | 387 | #define TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST 0 |
5b900a4c DN |
388 | #define TARGET_VECTOR_ALIGNMENT_REACHABLE \ |
389 | default_builtin_vector_alignment_reachable | |
0fca40f5 | 390 | #define TARGET_VECTORIZE_BUILTIN_VEC_PERM 0 |
7ccf35ed DN |
391 | |
392 | #define TARGET_VECTORIZE \ | |
2505a3f2 RG |
393 | { \ |
394 | TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD, \ | |
395 | TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION, \ | |
f57d17f1 | 396 | TARGET_VECTORIZE_BUILTIN_CONVERSION, \ |
2505a3f2 | 397 | TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN, \ |
e95b59d2 | 398 | TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD, \ |
5b900a4c | 399 | TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST, \ |
0fca40f5 IR |
400 | TARGET_VECTOR_ALIGNMENT_REACHABLE, \ |
401 | TARGET_VECTORIZE_BUILTIN_VEC_PERM \ | |
2505a3f2 | 402 | } |
7ccf35ed | 403 | |
75685792 RS |
404 | #define TARGET_DEFAULT_TARGET_FLAGS 0 |
405 | ||
406 | #define TARGET_HANDLE_OPTION hook_bool_size_t_constcharptr_int_true | |
67e6ba46 | 407 | #define TARGET_HELP NULL |
75685792 | 408 | |
93f90be6 | 409 | /* In except.c */ |
62114438 | 410 | #define TARGET_EH_RETURN_FILTER_MODE default_eh_return_filter_mode |
93f90be6 | 411 | |
c7ff6e7a AK |
412 | /* In libgcc2.c */ |
413 | #define TARGET_LIBGCC_CMP_RETURN_MODE default_libgcc_cmp_return_mode | |
414 | #define TARGET_LIBGCC_SHIFT_COUNT_MODE default_libgcc_shift_count_mode | |
415 | ||
7b0518e3 UW |
416 | /* In unwind-generic.h. */ |
417 | #define TARGET_UNWIND_WORD_MODE default_unwind_word_mode | |
418 | ||
dcefdf67 | 419 | /* In tree.c. */ |
672a6f42 NB |
420 | #define TARGET_MERGE_DECL_ATTRIBUTES merge_decl_attributes |
421 | #define TARGET_MERGE_TYPE_ATTRIBUTES merge_type_attributes | |
349ae713 | 422 | #define TARGET_ATTRIBUTE_TABLE NULL |
672a6f42 | 423 | |
dcefdf67 RH |
424 | /* In cse.c. */ |
425 | #define TARGET_ADDRESS_COST default_address_cost | |
2c5bfdf7 | 426 | #define TARGET_CONST_ANCHOR 0 |
dcefdf67 | 427 | |
f6155fda | 428 | /* In builtins.c. */ |
c15c90bb | 429 | #define TARGET_INIT_BUILTINS hook_void_void |
f6155fda | 430 | #define TARGET_EXPAND_BUILTIN default_expand_builtin |
58646b77 | 431 | #define TARGET_RESOLVE_OVERLOADED_BUILTIN NULL |
a05a80fc | 432 | #define TARGET_FOLD_BUILTIN hook_tree_tree_tree_bool_null |
f6155fda | 433 | |
6b889d89 | 434 | /* In tree-ssa-math-opts.c */ |
cc2137be | 435 | #define TARGET_BUILTIN_RECIPROCAL default_builtin_reciprocal |
6b889d89 | 436 | |
7c262518 RH |
437 | /* In varasm.c. */ |
438 | #ifndef TARGET_SECTION_TYPE_FLAGS | |
439 | #define TARGET_SECTION_TYPE_FLAGS default_section_type_flags | |
440 | #endif | |
441 | ||
772c5265 RH |
442 | #ifndef TARGET_STRIP_NAME_ENCODING |
443 | #define TARGET_STRIP_NAME_ENCODING default_strip_name_encoding | |
444 | #endif | |
445 | ||
47754fd5 RH |
446 | #ifndef TARGET_BINDS_LOCAL_P |
447 | #define TARGET_BINDS_LOCAL_P default_binds_local_p | |
448 | #endif | |
449 | ||
273a2526 RS |
450 | #ifndef TARGET_SHIFT_TRUNCATION_MASK |
451 | #define TARGET_SHIFT_TRUNCATION_MASK default_shift_truncation_mask | |
452 | #endif | |
453 | ||
bc23502b PB |
454 | #ifndef TARGET_MIN_DIVISIONS_FOR_RECIP_MUL |
455 | #define TARGET_MIN_DIVISIONS_FOR_RECIP_MUL default_min_divisions_for_recip_mul | |
456 | #endif | |
457 | ||
b12cbf2c AN |
458 | #ifndef TARGET_MODE_REP_EXTENDED |
459 | #define TARGET_MODE_REP_EXTENDED default_mode_rep_extended | |
460 | #endif | |
461 | ||
4977bab6 ZW |
462 | #ifndef TARGET_VALID_POINTER_MODE |
463 | #define TARGET_VALID_POINTER_MODE default_valid_pointer_mode | |
464 | #endif | |
465 | ||
6dd53648 RH |
466 | #ifndef TARGET_SCALAR_MODE_SUPPORTED_P |
467 | #define TARGET_SCALAR_MODE_SUPPORTED_P default_scalar_mode_supported_p | |
468 | #endif | |
469 | ||
0884546e BE |
470 | #ifndef TARGET_DECIMAL_FLOAT_SUPPORTED_P |
471 | #define TARGET_DECIMAL_FLOAT_SUPPORTED_P default_decimal_float_supported_p | |
472 | #endif | |
473 | ||
ab22c1fa CF |
474 | #ifndef TARGET_FIXED_POINT_SUPPORTED_P |
475 | #define TARGET_FIXED_POINT_SUPPORTED_P default_fixed_point_supported_p | |
476 | #endif | |
477 | ||
f676971a EC |
478 | #ifndef TARGET_VECTOR_MODE_SUPPORTED_P |
479 | #define TARGET_VECTOR_MODE_SUPPORTED_P hook_bool_mode_false | |
480 | #endif | |
481 | ||
f676971a | 482 | /* In hooks.c. */ |
7b1bd3c5 | 483 | #define TARGET_CANNOT_MODIFY_JUMPS_P hook_bool_void_false |
81f40b79 ILT |
484 | #define TARGET_BRANCH_TARGET_REGISTER_CLASS \ |
485 | default_branch_target_register_class | |
fe3ad572 | 486 | #define TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED hook_bool_bool_false |
3a04ff64 | 487 | #define TARGET_CANNOT_FORCE_CONST_MEM hook_bool_rtx_false |
0b077eac | 488 | #define TARGET_CANNOT_COPY_INSN_P NULL |
3101faab | 489 | #define TARGET_COMMUTATIVE_P hook_bool_const_rtx_commutative_p |
506d7b68 | 490 | #define TARGET_LEGITIMIZE_ADDRESS default_legitimize_address |
b5b8b0ac | 491 | #define TARGET_DELEGITIMIZE_ADDRESS delegitimize_mem_from_attrs |
c6c3dba9 | 492 | #define TARGET_LEGITIMATE_ADDRESS_P default_legitimate_address_p |
3101faab | 493 | #define TARGET_USE_BLOCKS_FOR_CONSTANT_P hook_bool_mode_const_rtx_false |
aacd3885 RS |
494 | #define TARGET_MIN_ANCHOR_OFFSET 0 |
495 | #define TARGET_MAX_ANCHOR_OFFSET 0 | |
496 | #define TARGET_USE_ANCHORS_FOR_SYMBOL_P default_use_anchors_for_symbol_p | |
4977bab6 | 497 | #define TARGET_FUNCTION_OK_FOR_SIBCALL hook_bool_tree_tree_false |
3101faab | 498 | #define TARGET_COMP_TYPE_ATTRIBUTES hook_int_const_tree_const_tree_1 |
16d6f994 | 499 | #ifndef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES |
7b1bd3c5 | 500 | #define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES hook_void_tree |
16d6f994 | 501 | #endif |
7b1bd3c5 | 502 | #define TARGET_INSERT_ATTRIBUTES hook_void_tree_treeptr |
3101faab KG |
503 | #define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P hook_bool_const_tree_false |
504 | #define TARGET_MS_BITFIELD_LAYOUT_P hook_bool_const_tree_false | |
13c1cd82 | 505 | #define TARGET_ALIGN_ANON_BITFIELD hook_bool_void_false |
c2a64439 | 506 | #define TARGET_NARROW_VOLATILE_BITFIELD hook_bool_void_false |
f40751dd | 507 | #define TARGET_RTX_COSTS hook_bool_rtx_int_int_intp_bool_false |
3101faab | 508 | #define TARGET_MANGLE_TYPE hook_constcharptr_const_tree_null |
b48f503c | 509 | #define TARGET_ALLOCATE_INITIAL_VALUE NULL |
275b6d80 | 510 | |
215b063c PB |
511 | #define TARGET_UNSPEC_MAY_TRAP_P default_unspec_may_trap_p |
512 | ||
db2960f4 SL |
513 | #ifndef TARGET_SET_CURRENT_FUNCTION |
514 | #define TARGET_SET_CURRENT_FUNCTION hook_void_tree | |
515 | #endif | |
516 | ||
c15c90bb ZW |
517 | #ifndef TARGET_INIT_LIBFUNCS |
518 | #define TARGET_INIT_LIBFUNCS hook_void_void | |
519 | #endif | |
520 | ||
275b6d80 | 521 | #ifndef TARGET_IN_SMALL_DATA_P |
3101faab | 522 | #define TARGET_IN_SMALL_DATA_P hook_bool_const_tree_false |
275b6d80 | 523 | #endif |
e4ec2cac | 524 | |
5234b8f5 | 525 | #ifndef TARGET_MANGLE_DECL_ASSEMBLER_NAME |
cb8b507b | 526 | #define TARGET_MANGLE_DECL_ASSEMBLER_NAME default_mangle_decl_assembler_name |
5234b8f5 DS |
527 | #endif |
528 | ||
fb49053f | 529 | #ifndef TARGET_ENCODE_SECTION_INFO |
52859c77 | 530 | #define TARGET_ENCODE_SECTION_INFO default_encode_section_info |
fb49053f RH |
531 | #endif |
532 | ||
4d3e6fae FJ |
533 | #ifndef TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN |
534 | #define TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN hook_invalid_arg_for_unprototyped_fn | |
535 | #endif | |
536 | ||
3101faab KG |
537 | #define TARGET_INVALID_CONVERSION hook_constcharptr_const_tree_const_tree_null |
538 | #define TARGET_INVALID_UNARY_OP hook_constcharptr_int_const_tree_null | |
539 | #define TARGET_INVALID_BINARY_OP hook_constcharptr_int_const_tree_const_tree_null | |
40449a90 SL |
540 | #define TARGET_INVALID_PARAMETER_TYPE hook_constcharptr_const_tree_null |
541 | #define TARGET_INVALID_RETURN_TYPE hook_constcharptr_const_tree_null | |
542 | #define TARGET_PROMOTED_TYPE hook_tree_const_tree_null | |
543 | #define TARGET_CONVERT_TO_TYPE hook_tree_tree_tree_null | |
4de67c26 | 544 | |
e129d93a ILT |
545 | #define TARGET_FIXED_CONDITION_CODE_REGS hook_bool_uintp_uintp_false |
546 | ||
547 | #define TARGET_CC_MODES_COMPATIBLE default_cc_modes_compatible | |
548 | ||
18dbd950 RS |
549 | #define TARGET_MACHINE_DEPENDENT_REORG 0 |
550 | ||
c35d187f | 551 | #define TARGET_BUILD_BUILTIN_VA_LIST std_build_builtin_va_list |
35cbb299 KT |
552 | #define TARGET_FN_ABI_VA_LIST std_fn_abi_va_list |
553 | #define TARGET_CANONICAL_VA_LIST_TYPE std_canonical_va_list_type | |
d7bd8aeb | 554 | #define TARGET_EXPAND_BUILTIN_VA_START 0 |
c35d187f | 555 | |
7bb1ad93 GK |
556 | #define TARGET_GET_PCH_VALIDITY default_get_pch_validity |
557 | #define TARGET_PCH_VALID_P default_pch_valid_p | |
8d932be3 | 558 | #define TARGET_CHECK_PCH_TARGET_FLAGS NULL |
7bb1ad93 | 559 | |
221ee7c9 KH |
560 | #define TARGET_DEFAULT_SHORT_ENUMS hook_bool_void_false |
561 | ||
d6da68b9 KH |
562 | #define TARGET_BUILTIN_SETJMP_FRAME_VALUE default_builtin_setjmp_frame_value |
563 | ||
61158923 | 564 | #define TARGET_MD_ASM_CLOBBERS hook_tree_tree_tree_tree_3rd_identity |
67dfe110 | 565 | |
3101faab | 566 | #define TARGET_DWARF_CALLING_CONVENTION hook_int_const_tree_0 |
a1c496cb | 567 | |
e54c7471 EB |
568 | #define TARGET_DWARF_HANDLE_FRAME_UNSPEC 0 |
569 | ||
9d30f3c1 JJ |
570 | #define TARGET_STDARG_OPTIMIZE_HOOK 0 |
571 | ||
7d69de61 RH |
572 | #define TARGET_STACK_PROTECT_GUARD default_stack_protect_guard |
573 | #define TARGET_STACK_PROTECT_FAIL default_external_stack_protect_fail | |
574 | ||
617a1b71 PB |
575 | #define TARGET_ARM_EABI_UNWINDER false |
576 | ||
cde0f3fd | 577 | #define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode |
586de218 | 578 | #define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_false |
61f71b34 | 579 | |
1f6acb82 | 580 | #define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null |
61f71b34 | 581 | #define TARGET_RETURN_IN_MEMORY default_return_in_memory |
586de218 | 582 | #define TARGET_RETURN_IN_MSB hook_bool_const_tree_false |
61f71b34 DD |
583 | |
584 | #define TARGET_EXPAND_BUILTIN_SAVEREGS default_expand_builtin_saveregs | |
585 | #define TARGET_SETUP_INCOMING_VARARGS default_setup_incoming_varargs | |
8dfa8fcd | 586 | #define TARGET_STRICT_ARGUMENT_NAMING hook_bool_CUMULATIVE_ARGS_false |
42ba5130 RH |
587 | #define TARGET_PRETEND_OUTGOING_VARARGS_NAMED \ |
588 | default_pretend_outgoing_varargs_named | |
589 | #define TARGET_SPLIT_COMPLEX_ARG NULL | |
61f71b34 | 590 | |
cd3ce9b4 | 591 | #define TARGET_GIMPLIFY_VA_ARG_EXPR std_gimplify_va_arg_expr |
6cdd5672 | 592 | #define TARGET_PASS_BY_REFERENCE hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false |
445cf5eb JM |
593 | |
594 | #define TARGET_RELAXED_ORDERING false | |
595 | ||
fe984136 | 596 | #define TARGET_MUST_PASS_IN_STACK must_pass_in_stack_var_size_or_pad |
6cdd5672 | 597 | #define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false |
78a52f11 | 598 | #define TARGET_ARG_PARTIAL_BYTES hook_int_CUMULATIVE_ARGS_mode_tree_bool_0 |
fe984136 | 599 | |
1d636cc6 | 600 | #define TARGET_FUNCTION_VALUE default_function_value |
390b17c2 | 601 | #define TARGET_LIBCALL_VALUE default_libcall_value |
150cdc9e | 602 | #define TARGET_INTERNAL_ARG_POINTER default_internal_arg_pointer |
2e3f842f L |
603 | #define TARGET_UPDATE_STACK_BOUNDARY NULL |
604 | #define TARGET_GET_DRAP_RTX NULL | |
007e61c2 | 605 | #define TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS hook_bool_void_true |
1d636cc6 | 606 | |
61f71b34 | 607 | #define TARGET_CALLS { \ |
cde0f3fd | 608 | TARGET_PROMOTE_FUNCTION_MODE, \ |
61f71b34 DD |
609 | TARGET_PROMOTE_PROTOTYPES, \ |
610 | TARGET_STRUCT_VALUE_RTX, \ | |
611 | TARGET_RETURN_IN_MEMORY, \ | |
c988af2b | 612 | TARGET_RETURN_IN_MSB, \ |
8cd5a4e0 | 613 | TARGET_PASS_BY_REFERENCE, \ |
61f71b34 DD |
614 | TARGET_EXPAND_BUILTIN_SAVEREGS, \ |
615 | TARGET_SETUP_INCOMING_VARARGS, \ | |
616 | TARGET_STRICT_ARGUMENT_NAMING, \ | |
617 | TARGET_PRETEND_OUTGOING_VARARGS_NAMED, \ | |
42ba5130 | 618 | TARGET_SPLIT_COMPLEX_ARG, \ |
6cdd5672 | 619 | TARGET_MUST_PASS_IN_STACK, \ |
78a52f11 | 620 | TARGET_CALLEE_COPIES, \ |
4d3e6fae | 621 | TARGET_ARG_PARTIAL_BYTES, \ |
1d636cc6 | 622 | TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN, \ |
150cdc9e | 623 | TARGET_FUNCTION_VALUE, \ |
390b17c2 | 624 | TARGET_LIBCALL_VALUE, \ |
007e61c2 | 625 | TARGET_INTERNAL_ARG_POINTER, \ |
2e3f842f L |
626 | TARGET_UPDATE_STACK_BOUNDARY, \ |
627 | TARGET_GET_DRAP_RTX, \ | |
007e61c2 | 628 | TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS \ |
61f71b34 DD |
629 | } |
630 | ||
617a1b71 PB |
631 | #ifndef TARGET_UNWIND_TABLES_DEFAULT |
632 | #define TARGET_UNWIND_TABLES_DEFAULT false | |
633 | #endif | |
84b8b0e0 | 634 | |
84b8b0e0 ZW |
635 | #ifndef TARGET_HANDLE_PRAGMA_EXTERN_PREFIX |
636 | #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 0 | |
637 | #endif | |
638 | ||
76e68dca RS |
639 | #ifdef IRA_COVER_CLASSES |
640 | #define TARGET_IRA_COVER_CLASSES default_ira_cover_classes | |
641 | #else | |
642 | #define TARGET_IRA_COVER_CLASSES 0 | |
643 | #endif | |
644 | ||
8a99f6f9 R |
645 | #ifndef TARGET_SECONDARY_RELOAD |
646 | #define TARGET_SECONDARY_RELOAD default_secondary_reload | |
647 | #endif | |
648 | ||
e41b2a33 PB |
649 | #ifndef TARGET_EXPAND_TO_RTL_HOOK |
650 | #define TARGET_EXPAND_TO_RTL_HOOK hook_void_void | |
651 | #endif | |
652 | ||
653 | #ifndef TARGET_INSTANTIATE_DECLS | |
654 | #define TARGET_INSTANTIATE_DECLS hook_void_void | |
655 | #endif | |
656 | ||
dbc42c44 AS |
657 | #ifndef TARGET_HARD_REGNO_SCRATCH_OK |
658 | #define TARGET_HARD_REGNO_SCRATCH_OK default_hard_regno_scratch_ok | |
659 | #endif | |
660 | ||
e6ff3083 AS |
661 | #ifndef TARGET_CASE_VALUES_THRESHOLD |
662 | #define TARGET_CASE_VALUES_THRESHOLD default_case_values_threshold | |
663 | #endif | |
664 | ||
b52b1749 AS |
665 | #ifndef TARGET_FRAME_POINTER_REQUIRED |
666 | #define TARGET_FRAME_POINTER_REQUIRED hook_bool_void_false | |
667 | #endif | |
668 | ||
7b5cbb57 AS |
669 | #ifndef TARGET_CAN_ELIMINATE |
670 | #define TARGET_CAN_ELIMINATE hook_bool_const_int_const_int_true | |
671 | #endif | |
672 | ||
c77cd3d1 UB |
673 | /* C specific. */ |
674 | #ifndef TARGET_C_MODE_FOR_SUFFIX | |
675 | #define TARGET_C_MODE_FOR_SUFFIX default_mode_for_suffix | |
676 | #endif | |
677 | ||
678 | #define TARGET_C \ | |
679 | { \ | |
680 | TARGET_C_MODE_FOR_SUFFIX \ | |
681 | } | |
4185ae53 PB |
682 | |
683 | /* C++ specific. */ | |
684 | #ifndef TARGET_CXX_GUARD_TYPE | |
685 | #define TARGET_CXX_GUARD_TYPE default_cxx_guard_type | |
686 | #endif | |
687 | ||
688 | #ifndef TARGET_CXX_GUARD_MASK_BIT | |
689 | #define TARGET_CXX_GUARD_MASK_BIT hook_bool_void_false | |
690 | #endif | |
691 | ||
46e995e0 PB |
692 | #ifndef TARGET_CXX_GET_COOKIE_SIZE |
693 | #define TARGET_CXX_GET_COOKIE_SIZE default_cxx_get_cookie_size | |
694 | #endif | |
695 | ||
696 | #ifndef TARGET_CXX_COOKIE_HAS_SIZE | |
697 | #define TARGET_CXX_COOKIE_HAS_SIZE hook_bool_void_false | |
698 | #endif | |
699 | ||
d59c7b4b NC |
700 | #ifndef TARGET_CXX_IMPORT_EXPORT_CLASS |
701 | #define TARGET_CXX_IMPORT_EXPORT_CLASS NULL | |
702 | #endif | |
703 | ||
44d10c10 PB |
704 | #ifndef TARGET_CXX_CDTOR_RETURNS_THIS |
705 | #define TARGET_CXX_CDTOR_RETURNS_THIS hook_bool_void_false | |
706 | #endif | |
707 | ||
af287697 MM |
708 | #ifndef TARGET_CXX_KEY_METHOD_MAY_BE_INLINE |
709 | #define TARGET_CXX_KEY_METHOD_MAY_BE_INLINE hook_bool_void_true | |
710 | #endif | |
711 | ||
1e731102 MM |
712 | #ifndef TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY |
713 | #define TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY hook_void_tree | |
714 | #endif | |
715 | ||
716 | #ifndef TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT | |
717 | #define TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT hook_bool_void_true | |
505970fc MM |
718 | #endif |
719 | ||
157600d0 GK |
720 | #ifndef TARGET_CXX_LIBRARY_RTTI_COMDAT |
721 | #define TARGET_CXX_LIBRARY_RTTI_COMDAT hook_bool_void_true | |
722 | #endif | |
723 | ||
9f62c3e3 PB |
724 | #ifndef TARGET_CXX_USE_AEABI_ATEXIT |
725 | #define TARGET_CXX_USE_AEABI_ATEXIT hook_bool_void_false | |
726 | #endif | |
727 | ||
97388150 DS |
728 | #ifndef TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT |
729 | #define TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT hook_bool_void_false | |
730 | #endif | |
731 | ||
43d9ad1d DS |
732 | #ifndef TARGET_CXX_ADJUST_CLASS_AT_DEFINITION |
733 | #define TARGET_CXX_ADJUST_CLASS_AT_DEFINITION hook_void_tree | |
734 | #endif | |
735 | ||
505970fc MM |
736 | #define TARGET_CXX \ |
737 | { \ | |
738 | TARGET_CXX_GUARD_TYPE, \ | |
739 | TARGET_CXX_GUARD_MASK_BIT, \ | |
740 | TARGET_CXX_GET_COOKIE_SIZE, \ | |
741 | TARGET_CXX_COOKIE_HAS_SIZE, \ | |
742 | TARGET_CXX_IMPORT_EXPORT_CLASS, \ | |
743 | TARGET_CXX_CDTOR_RETURNS_THIS, \ | |
744 | TARGET_CXX_KEY_METHOD_MAY_BE_INLINE, \ | |
1e731102 MM |
745 | TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY, \ |
746 | TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT, \ | |
157600d0 | 747 | TARGET_CXX_LIBRARY_RTTI_COMDAT, \ |
617a1b71 | 748 | TARGET_CXX_USE_AEABI_ATEXIT, \ |
97388150 | 749 | TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT, \ |
43d9ad1d | 750 | TARGET_CXX_ADJUST_CLASS_AT_DEFINITION \ |
4185ae53 PB |
751 | } |
752 | ||
feb60f03 NS |
753 | /* EMUTLS specific */ |
754 | #ifndef TARGET_EMUTLS_GET_ADDRESS | |
755 | #define TARGET_EMUTLS_GET_ADDRESS "__builtin___emutls_get_address" | |
756 | #endif | |
757 | ||
758 | #ifndef TARGET_EMUTLS_REGISTER_COMMON | |
759 | #define TARGET_EMUTLS_REGISTER_COMMON "__builtin___emutls_register_common" | |
760 | #endif | |
761 | ||
762 | #ifndef TARGET_EMUTLS_VAR_SECTION | |
763 | #define TARGET_EMUTLS_VAR_SECTION NULL | |
764 | #endif | |
765 | ||
766 | #ifndef TARGET_EMUTLS_TMPL_SECTION | |
767 | #define TARGET_EMUTLS_TMPL_SECTION NULL | |
768 | #endif | |
769 | ||
770 | #ifndef TARGET_EMUTLS_VAR_PREFIX | |
771 | #define TARGET_EMUTLS_VAR_PREFIX NULL | |
772 | #endif | |
773 | ||
774 | #ifndef TARGET_EMUTLS_TMPL_PREFIX | |
775 | #define TARGET_EMUTLS_TMPL_PREFIX NULL | |
776 | #endif | |
777 | ||
778 | #ifndef TARGET_EMUTLS_VAR_FIELDS | |
779 | #define TARGET_EMUTLS_VAR_FIELDS default_emutls_var_fields | |
780 | #endif | |
781 | ||
782 | #ifndef TARGET_EMUTLS_VAR_INIT | |
783 | #define TARGET_EMUTLS_VAR_INIT default_emutls_var_init | |
784 | #endif | |
785 | ||
786 | #ifndef TARGET_EMUTLS_VAR_ALIGN_FIXED | |
787 | #define TARGET_EMUTLS_VAR_ALIGN_FIXED false | |
788 | #endif | |
789 | ||
790 | #ifndef TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS | |
791 | #define TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS false | |
792 | #endif | |
793 | ||
794 | #define TARGET_EMUTLS \ | |
795 | { \ | |
796 | TARGET_EMUTLS_GET_ADDRESS, \ | |
797 | TARGET_EMUTLS_REGISTER_COMMON, \ | |
798 | TARGET_EMUTLS_VAR_SECTION, \ | |
799 | TARGET_EMUTLS_TMPL_SECTION, \ | |
800 | TARGET_EMUTLS_VAR_PREFIX, \ | |
801 | TARGET_EMUTLS_TMPL_PREFIX, \ | |
802 | TARGET_EMUTLS_VAR_FIELDS, \ | |
803 | TARGET_EMUTLS_VAR_INIT, \ | |
804 | TARGET_EMUTLS_VAR_ALIGN_FIXED, \ | |
805 | TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS \ | |
806 | } | |
807 | ||
ab442df7 MM |
808 | /* Function specific option attribute support. */ |
809 | #ifndef TARGET_OPTION_VALID_ATTRIBUTE_P | |
5779e713 MM |
810 | #define TARGET_OPTION_VALID_ATTRIBUTE_P \ |
811 | default_target_option_valid_attribute_p | |
ab442df7 MM |
812 | #endif |
813 | ||
814 | #ifndef TARGET_OPTION_SAVE | |
815 | #define TARGET_OPTION_SAVE NULL | |
816 | #endif | |
817 | ||
818 | #ifndef TARGET_OPTION_RESTORE | |
819 | #define TARGET_OPTION_RESTORE NULL | |
820 | #endif | |
821 | ||
822 | #ifndef TARGET_OPTION_PRINT | |
823 | #define TARGET_OPTION_PRINT NULL | |
824 | #endif | |
825 | ||
826 | #ifndef TARGET_OPTION_PRAGMA_PARSE | |
5779e713 | 827 | #define TARGET_OPTION_PRAGMA_PARSE default_target_option_pragma_parse |
ab442df7 MM |
828 | #endif |
829 | ||
5cec9f59 DD |
830 | #ifndef TARGET_CAN_INLINE_P |
831 | #define TARGET_CAN_INLINE_P default_target_can_inline_p | |
ab442df7 MM |
832 | #endif |
833 | ||
834 | #define TARGET_OPTION_HOOKS \ | |
835 | { \ | |
836 | TARGET_OPTION_VALID_ATTRIBUTE_P, \ | |
837 | TARGET_OPTION_SAVE, \ | |
838 | TARGET_OPTION_RESTORE, \ | |
839 | TARGET_OPTION_PRINT, \ | |
840 | TARGET_OPTION_PRAGMA_PARSE, \ | |
5cec9f59 | 841 | TARGET_CAN_INLINE_P, \ |
ab442df7 MM |
842 | } |
843 | ||
672a6f42 NB |
844 | /* The whole shebang. */ |
845 | #define TARGET_INITIALIZER \ | |
846 | { \ | |
08c148a8 | 847 | TARGET_ASM_OUT, \ |
c237e94a | 848 | TARGET_SCHED, \ |
7ccf35ed | 849 | TARGET_VECTORIZE, \ |
75685792 RS |
850 | TARGET_DEFAULT_TARGET_FLAGS, \ |
851 | TARGET_HANDLE_OPTION, \ | |
121f163f | 852 | TARGET_HELP, \ |
93f90be6 | 853 | TARGET_EH_RETURN_FILTER_MODE, \ |
c7ff6e7a AK |
854 | TARGET_LIBGCC_CMP_RETURN_MODE, \ |
855 | TARGET_LIBGCC_SHIFT_COUNT_MODE, \ | |
7b0518e3 | 856 | TARGET_UNWIND_WORD_MODE, \ |
672a6f42 NB |
857 | TARGET_MERGE_DECL_ATTRIBUTES, \ |
858 | TARGET_MERGE_TYPE_ATTRIBUTES, \ | |
91d231cb | 859 | TARGET_ATTRIBUTE_TABLE, \ |
8d8e52be | 860 | TARGET_COMP_TYPE_ATTRIBUTES, \ |
12a68f1f | 861 | TARGET_SET_DEFAULT_TYPE_ATTRIBUTES, \ |
f6155fda | 862 | TARGET_INSERT_ATTRIBUTES, \ |
91d231cb | 863 | TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P, \ |
f913c102 | 864 | TARGET_MS_BITFIELD_LAYOUT_P, \ |
9a8ce21f | 865 | TARGET_DECIMAL_FLOAT_SUPPORTED_P, \ |
ab22c1fa | 866 | TARGET_FIXED_POINT_SUPPORTED_P, \ |
13c1cd82 | 867 | TARGET_ALIGN_ANON_BITFIELD, \ |
c2a64439 | 868 | TARGET_NARROW_VOLATILE_BITFIELD, \ |
f6155fda | 869 | TARGET_INIT_BUILTINS, \ |
7c262518 | 870 | TARGET_EXPAND_BUILTIN, \ |
58646b77 | 871 | TARGET_RESOLVE_OVERLOADED_BUILTIN, \ |
c2dda19b | 872 | TARGET_FOLD_BUILTIN, \ |
6b889d89 | 873 | TARGET_BUILTIN_RECIPROCAL, \ |
608063c3 | 874 | TARGET_MANGLE_TYPE, \ |
c15c90bb | 875 | TARGET_INIT_LIBFUNCS, \ |
7c262518 | 876 | TARGET_SECTION_TYPE_FLAGS, \ |
ae46c4e0 | 877 | TARGET_CANNOT_MODIFY_JUMPS_P, \ |
7bb1ad93 | 878 | TARGET_BRANCH_TARGET_REGISTER_CLASS, \ |
fe3ad572 | 879 | TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED, \ |
3a04ff64 | 880 | TARGET_CANNOT_FORCE_CONST_MEM, \ |
0b077eac | 881 | TARGET_CANNOT_COPY_INSN_P, \ |
8ddf681a | 882 | TARGET_COMMUTATIVE_P, \ |
506d7b68 | 883 | TARGET_LEGITIMIZE_ADDRESS, \ |
7daebb7a | 884 | TARGET_DELEGITIMIZE_ADDRESS, \ |
c6c3dba9 | 885 | TARGET_LEGITIMATE_ADDRESS_P, \ |
aacd3885 RS |
886 | TARGET_USE_BLOCKS_FOR_CONSTANT_P, \ |
887 | TARGET_MIN_ANCHOR_OFFSET, \ | |
888 | TARGET_MAX_ANCHOR_OFFSET, \ | |
889 | TARGET_USE_ANCHORS_FOR_SYMBOL_P, \ | |
4977bab6 | 890 | TARGET_FUNCTION_OK_FOR_SIBCALL, \ |
db2960f4 | 891 | TARGET_SET_CURRENT_FUNCTION, \ |
fb49053f | 892 | TARGET_IN_SMALL_DATA_P, \ |
47754fd5 | 893 | TARGET_BINDS_LOCAL_P, \ |
5234b8f5 | 894 | TARGET_MANGLE_DECL_ASSEMBLER_NAME, \ |
772c5265 | 895 | TARGET_ENCODE_SECTION_INFO, \ |
47754fd5 | 896 | TARGET_STRIP_NAME_ENCODING, \ |
273a2526 | 897 | TARGET_SHIFT_TRUNCATION_MASK, \ |
bc23502b | 898 | TARGET_MIN_DIVISIONS_FOR_RECIP_MUL, \ |
b12cbf2c | 899 | TARGET_MODE_REP_EXTENDED, \ |
4977bab6 | 900 | TARGET_VALID_POINTER_MODE, \ |
6dd53648 | 901 | TARGET_SCALAR_MODE_SUPPORTED_P, \ |
f676971a | 902 | TARGET_VECTOR_MODE_SUPPORTED_P, \ |
3c50106f | 903 | TARGET_RTX_COSTS, \ |
dcefdf67 | 904 | TARGET_ADDRESS_COST, \ |
b48f503c | 905 | TARGET_ALLOCATE_INITIAL_VALUE, \ |
215b063c | 906 | TARGET_UNSPEC_MAY_TRAP_P, \ |
96714395 | 907 | TARGET_DWARF_REGISTER_SPAN, \ |
37ea0b7e | 908 | TARGET_INIT_DWARF_REG_SIZES_EXTRA, \ |
e129d93a ILT |
909 | TARGET_FIXED_CONDITION_CODE_REGS, \ |
910 | TARGET_CC_MODES_COMPATIBLE, \ | |
18dbd950 | 911 | TARGET_MACHINE_DEPENDENT_REORG, \ |
c35d187f | 912 | TARGET_BUILD_BUILTIN_VA_LIST, \ |
35cbb299 KT |
913 | TARGET_FN_ABI_VA_LIST, \ |
914 | TARGET_CANONICAL_VA_LIST_TYPE, \ | |
d7bd8aeb | 915 | TARGET_EXPAND_BUILTIN_VA_START, \ |
cdc3ddb8 | 916 | TARGET_GIMPLIFY_VA_ARG_EXPR, \ |
7bb1ad93 GK |
917 | TARGET_GET_PCH_VALIDITY, \ |
918 | TARGET_PCH_VALID_P, \ | |
8d932be3 | 919 | TARGET_CHECK_PCH_TARGET_FLAGS, \ |
221ee7c9 | 920 | TARGET_DEFAULT_SHORT_ENUMS, \ |
d6da68b9 | 921 | TARGET_BUILTIN_SETJMP_FRAME_VALUE, \ |
67dfe110 | 922 | TARGET_MD_ASM_CLOBBERS, \ |
a1c496cb | 923 | TARGET_DWARF_CALLING_CONVENTION, \ |
e54c7471 | 924 | TARGET_DWARF_HANDLE_FRAME_UNSPEC, \ |
9d30f3c1 | 925 | TARGET_STDARG_OPTIMIZE_HOOK, \ |
7d69de61 RH |
926 | TARGET_STACK_PROTECT_GUARD, \ |
927 | TARGET_STACK_PROTECT_FAIL, \ | |
e7e64a25 | 928 | TARGET_INVALID_WITHIN_DOLOOP, \ |
43d9ad1d | 929 | TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, \ |
2c5bfdf7 | 930 | TARGET_CONST_ANCHOR, \ |
42ba5130 | 931 | TARGET_CALLS, \ |
4de67c26 JM |
932 | TARGET_INVALID_CONVERSION, \ |
933 | TARGET_INVALID_UNARY_OP, \ | |
934 | TARGET_INVALID_BINARY_OP, \ | |
40449a90 SL |
935 | TARGET_INVALID_PARAMETER_TYPE, \ |
936 | TARGET_INVALID_RETURN_TYPE, \ | |
937 | TARGET_PROMOTED_TYPE, \ | |
938 | TARGET_CONVERT_TO_TYPE, \ | |
76e68dca | 939 | TARGET_IRA_COVER_CLASSES, \ |
8a99f6f9 | 940 | TARGET_SECONDARY_RELOAD, \ |
e41b2a33 PB |
941 | TARGET_EXPAND_TO_RTL_HOOK, \ |
942 | TARGET_INSTANTIATE_DECLS, \ | |
dbc42c44 | 943 | TARGET_HARD_REGNO_SCRATCH_OK, \ |
e6ff3083 | 944 | TARGET_CASE_VALUES_THRESHOLD, \ |
b52b1749 | 945 | TARGET_FRAME_POINTER_REQUIRED, \ |
7b5cbb57 | 946 | TARGET_CAN_ELIMINATE, \ |
c77cd3d1 | 947 | TARGET_C, \ |
4185ae53 | 948 | TARGET_CXX, \ |
feb60f03 | 949 | TARGET_EMUTLS, \ |
ab442df7 | 950 | TARGET_OPTION_HOOKS, \ |
c77cd3d1 | 951 | TARGET_EXTRA_LIVE_ON_ENTRY, \ |
617a1b71 | 952 | TARGET_UNWIND_TABLES_DEFAULT, \ |
47754fd5 | 953 | TARGET_HAVE_NAMED_SECTIONS, \ |
434aeebb | 954 | TARGET_HAVE_SWITCHABLE_BSS_SECTIONS, \ |
47754fd5 | 955 | TARGET_HAVE_CTORS_DTORS, \ |
275b6d80 | 956 | TARGET_HAVE_TLS, \ |
7606e68f | 957 | TARGET_HAVE_SRODATA_SECTION, \ |
1bc7c5b6 ZW |
958 | TARGET_TERMINATE_DW2_EH_FRAME_INFO, \ |
959 | TARGET_ASM_FILE_START_APP_OFF, \ | |
960 | TARGET_ASM_FILE_START_FILE_DIRECTIVE, \ | |
84b8b0e0 | 961 | TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, \ |
445cf5eb | 962 | TARGET_RELAXED_ORDERING, \ |
617a1b71 | 963 | TARGET_ARM_EABI_UNWINDER \ |
672a6f42 | 964 | } |
e4ec2cac | 965 | |
1f1d5130 MS |
966 | #define TARGET_HANDLE_C_OPTION default_handle_c_option |
967 | #define TARGETCM_INITIALIZER { TARGET_HANDLE_C_OPTION } | |
968 | ||
e4ec2cac | 969 | #include "hooks.h" |
61f71b34 | 970 | #include "targhooks.h" |