]>
Commit | Line | Data |
---|---|---|
672a6f42 | 1 | /* Default initializers for a generic GCC target. |
66647d44 | 2 | Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 |
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 | ||
e0d9d0dd NC |
239 | #ifndef TARGET_ASM_RECORD_GCC_SWITCHES |
240 | #define TARGET_ASM_RECORD_GCC_SWITCHES NULL | |
241 | #endif | |
242 | #ifndef TARGET_ASM_RECORD_GCC_SWITCHES_SECTION | |
243 | #define TARGET_ASM_RECORD_GCC_SWITCHES_SECTION ".GCC.command.line" | |
244 | #endif | |
245 | ||
301d03af RS |
246 | #define TARGET_ASM_ALIGNED_INT_OP \ |
247 | {TARGET_ASM_ALIGNED_HI_OP, \ | |
248 | TARGET_ASM_ALIGNED_SI_OP, \ | |
249 | TARGET_ASM_ALIGNED_DI_OP, \ | |
250 | TARGET_ASM_ALIGNED_TI_OP} | |
251 | ||
252 | #define TARGET_ASM_UNALIGNED_INT_OP \ | |
253 | {TARGET_ASM_UNALIGNED_HI_OP, \ | |
254 | TARGET_ASM_UNALIGNED_SI_OP, \ | |
255 | TARGET_ASM_UNALIGNED_DI_OP, \ | |
256 | TARGET_ASM_UNALIGNED_TI_OP} | |
257 | ||
17b53c33 NB |
258 | #define TARGET_ASM_OUT {TARGET_ASM_OPEN_PAREN, \ |
259 | TARGET_ASM_CLOSE_PAREN, \ | |
301d03af RS |
260 | TARGET_ASM_BYTE_OP, \ |
261 | TARGET_ASM_ALIGNED_INT_OP, \ | |
262 | TARGET_ASM_UNALIGNED_INT_OP, \ | |
263 | TARGET_ASM_INTEGER, \ | |
5eb99654 | 264 | TARGET_ASM_GLOBALIZE_LABEL, \ |
812b587e | 265 | TARGET_ASM_GLOBALIZE_DECL_NAME, \ |
4746cf84 | 266 | TARGET_ASM_EMIT_UNWIND_LABEL, \ |
083cad55 | 267 | TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL, \ |
951120ea | 268 | TARGET_UNWIND_EMIT, \ |
4977bab6 | 269 | TARGET_ASM_INTERNAL_LABEL, \ |
617a1b71 | 270 | TARGET_ASM_TTYPE, \ |
93638d7a | 271 | TARGET_ASM_ASSEMBLE_VISIBILITY, \ |
17b53c33 | 272 | TARGET_ASM_FUNCTION_PROLOGUE, \ |
b4c25db2 NB |
273 | TARGET_ASM_FUNCTION_END_PROLOGUE, \ |
274 | TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, \ | |
7c262518 | 275 | TARGET_ASM_FUNCTION_EPILOGUE, \ |
d6b5193b | 276 | TARGET_ASM_INIT_SECTIONS, \ |
2cc07db4 | 277 | TARGET_ASM_NAMED_SECTION, \ |
9b580a0b | 278 | TARGET_ASM_RELOC_RW_MASK, \ |
ae46c4e0 | 279 | TARGET_ASM_SELECT_SECTION, \ |
b64a1b53 | 280 | TARGET_ASM_SELECT_RTX_SECTION, \ |
ae46c4e0 | 281 | TARGET_ASM_UNIQUE_SECTION, \ |
ab5c8549 | 282 | TARGET_ASM_FUNCTION_RODATA_SECTION, \ |
2cc07db4 | 283 | TARGET_ASM_CONSTRUCTOR, \ |
483ab821 MM |
284 | TARGET_ASM_DESTRUCTOR, \ |
285 | TARGET_ASM_OUTPUT_MI_THUNK, \ | |
a5fe455b | 286 | TARGET_ASM_CAN_OUTPUT_MI_THUNK, \ |
1bc7c5b6 | 287 | TARGET_ASM_FILE_START, \ |
6773a41c | 288 | TARGET_ASM_FILE_END, \ |
8e3e233b | 289 | TARGET_ASM_EXTERNAL_LIBCALL, \ |
fdbe66f2 | 290 | TARGET_ASM_MARK_DECL_PRESERVED, \ |
e0d9d0dd NC |
291 | TARGET_ASM_RECORD_GCC_SWITCHES, \ |
292 | TARGET_ASM_RECORD_GCC_SWITCHES_SECTION, \ | |
aacd3885 | 293 | TARGET_ASM_OUTPUT_ANCHOR, \ |
fdbe66f2 | 294 | TARGET_ASM_OUTPUT_DWARF_DTPREL} |
08c148a8 | 295 | |
c237e94a ZW |
296 | /* Scheduler hooks. All of these default to null pointers, which |
297 | haifa-sched.c looks for and handles. */ | |
298 | #define TARGET_SCHED_ADJUST_COST 0 | |
299 | #define TARGET_SCHED_ADJUST_PRIORITY 0 | |
300 | #define TARGET_SCHED_ISSUE_RATE 0 | |
301 | #define TARGET_SCHED_VARIABLE_ISSUE 0 | |
302 | #define TARGET_SCHED_INIT 0 | |
303 | #define TARGET_SCHED_FINISH 0 | |
58565a33 SKG |
304 | #define TARGET_SCHED_INIT_GLOBAL 0 |
305 | #define TARGET_SCHED_FINISH_GLOBAL 0 | |
c237e94a ZW |
306 | #define TARGET_SCHED_REORDER 0 |
307 | #define TARGET_SCHED_REORDER2 0 | |
30028c85 | 308 | #define TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK 0 |
fae15c93 VM |
309 | #define TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN 0 |
310 | #define TARGET_SCHED_DFA_PRE_CYCLE_INSN 0 | |
311 | #define TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN 0 | |
312 | #define TARGET_SCHED_DFA_POST_CYCLE_INSN 0 | |
1c3d0d93 MK |
313 | #define TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE 0 |
314 | #define TARGET_SCHED_DFA_POST_ADVANCE_CYCLE 0 | |
fae15c93 | 315 | #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD 0 |
30028c85 VM |
316 | #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD 0 |
317 | #define TARGET_SCHED_DFA_NEW_CYCLE 0 | |
569fa502 | 318 | #define TARGET_SCHED_IS_COSTLY_DEPENDENCE 0 |
e855c69d | 319 | #define TARGET_SCHED_ADJUST_COST_2 0 |
496d7bb0 | 320 | #define TARGET_SCHED_H_I_D_EXTENDED 0 |
e855c69d AB |
321 | #define TARGET_SCHED_ALLOC_SCHED_CONTEXT 0 |
322 | #define TARGET_SCHED_INIT_SCHED_CONTEXT 0 | |
323 | #define TARGET_SCHED_SET_SCHED_CONTEXT 0 | |
324 | #define TARGET_SCHED_CLEAR_SCHED_CONTEXT 0 | |
325 | #define TARGET_SCHED_FREE_SCHED_CONTEXT 0 | |
496d7bb0 MK |
326 | #define TARGET_SCHED_SPECULATE_INSN 0 |
327 | #define TARGET_SCHED_NEEDS_BLOCK_P 0 | |
e855c69d | 328 | #define TARGET_SCHED_GEN_SPEC_CHECK 0 |
496d7bb0 MK |
329 | #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC 0 |
330 | #define TARGET_SCHED_SET_SCHED_FLAGS 0 | |
e855c69d AB |
331 | #define TARGET_SCHED_GET_INSN_SPEC_DS 0 |
332 | #define TARGET_SCHED_GET_INSN_CHECKED_DS 0 | |
333 | #define TARGET_SCHED_SKIP_RTX_P 0 | |
67186a97 | 334 | #define TARGET_SCHED_SMS_RES_MII 0 |
fae15c93 VM |
335 | |
336 | #define TARGET_SCHED \ | |
337 | {TARGET_SCHED_ADJUST_COST, \ | |
338 | TARGET_SCHED_ADJUST_PRIORITY, \ | |
339 | TARGET_SCHED_ISSUE_RATE, \ | |
340 | TARGET_SCHED_VARIABLE_ISSUE, \ | |
341 | TARGET_SCHED_INIT, \ | |
342 | TARGET_SCHED_FINISH, \ | |
58565a33 SKG |
343 | TARGET_SCHED_INIT_GLOBAL, \ |
344 | TARGET_SCHED_FINISH_GLOBAL, \ | |
fae15c93 VM |
345 | TARGET_SCHED_REORDER, \ |
346 | TARGET_SCHED_REORDER2, \ | |
30028c85 | 347 | TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK, \ |
fae15c93 VM |
348 | TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, \ |
349 | TARGET_SCHED_DFA_PRE_CYCLE_INSN, \ | |
350 | TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, \ | |
1c3d0d93 MK |
351 | TARGET_SCHED_DFA_POST_CYCLE_INSN, \ |
352 | TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, \ | |
353 | TARGET_SCHED_DFA_POST_ADVANCE_CYCLE, \ | |
fae15c93 | 354 | TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, \ |
30028c85 VM |
355 | TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD, \ |
356 | TARGET_SCHED_DFA_NEW_CYCLE, \ | |
496d7bb0 | 357 | TARGET_SCHED_IS_COSTLY_DEPENDENCE, \ |
e855c69d | 358 | TARGET_SCHED_ADJUST_COST_2, \ |
496d7bb0 | 359 | TARGET_SCHED_H_I_D_EXTENDED, \ |
e855c69d AB |
360 | TARGET_SCHED_ALLOC_SCHED_CONTEXT, \ |
361 | TARGET_SCHED_INIT_SCHED_CONTEXT, \ | |
362 | TARGET_SCHED_SET_SCHED_CONTEXT, \ | |
363 | TARGET_SCHED_CLEAR_SCHED_CONTEXT, \ | |
364 | TARGET_SCHED_FREE_SCHED_CONTEXT, \ | |
496d7bb0 MK |
365 | TARGET_SCHED_SPECULATE_INSN, \ |
366 | TARGET_SCHED_NEEDS_BLOCK_P, \ | |
e855c69d | 367 | TARGET_SCHED_GEN_SPEC_CHECK, \ |
496d7bb0 | 368 | TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, \ |
67186a97 | 369 | TARGET_SCHED_SET_SCHED_FLAGS, \ |
e855c69d AB |
370 | TARGET_SCHED_GET_INSN_SPEC_DS, \ |
371 | TARGET_SCHED_GET_INSN_CHECKED_DS, \ | |
372 | TARGET_SCHED_SKIP_RTX_P, \ | |
67186a97 | 373 | TARGET_SCHED_SMS_RES_MII} |
c237e94a | 374 | |
7ccf35ed | 375 | #define TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD 0 |
6b889d89 UB |
376 | #define TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION \ |
377 | default_builtin_vectorized_function | |
378 | #define TARGET_VECTORIZE_BUILTIN_CONVERSION \ | |
379 | default_builtin_vectorized_conversion | |
89d67cca DN |
380 | #define TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN 0 |
381 | #define TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD 0 | |
e95b59d2 | 382 | #define TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST 0 |
5b900a4c DN |
383 | #define TARGET_VECTOR_ALIGNMENT_REACHABLE \ |
384 | default_builtin_vector_alignment_reachable | |
0fca40f5 | 385 | #define TARGET_VECTORIZE_BUILTIN_VEC_PERM 0 |
7ccf35ed DN |
386 | |
387 | #define TARGET_VECTORIZE \ | |
2505a3f2 RG |
388 | { \ |
389 | TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD, \ | |
390 | TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION, \ | |
f57d17f1 | 391 | TARGET_VECTORIZE_BUILTIN_CONVERSION, \ |
2505a3f2 | 392 | TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN, \ |
e95b59d2 | 393 | TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD, \ |
5b900a4c | 394 | TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST, \ |
0fca40f5 IR |
395 | TARGET_VECTOR_ALIGNMENT_REACHABLE, \ |
396 | TARGET_VECTORIZE_BUILTIN_VEC_PERM \ | |
2505a3f2 | 397 | } |
7ccf35ed | 398 | |
75685792 RS |
399 | #define TARGET_DEFAULT_TARGET_FLAGS 0 |
400 | ||
401 | #define TARGET_HANDLE_OPTION hook_bool_size_t_constcharptr_int_true | |
67e6ba46 | 402 | #define TARGET_HELP NULL |
75685792 | 403 | |
93f90be6 | 404 | /* In except.c */ |
62114438 | 405 | #define TARGET_EH_RETURN_FILTER_MODE default_eh_return_filter_mode |
93f90be6 | 406 | |
c7ff6e7a AK |
407 | /* In libgcc2.c */ |
408 | #define TARGET_LIBGCC_CMP_RETURN_MODE default_libgcc_cmp_return_mode | |
409 | #define TARGET_LIBGCC_SHIFT_COUNT_MODE default_libgcc_shift_count_mode | |
410 | ||
7b0518e3 UW |
411 | /* In unwind-generic.h. */ |
412 | #define TARGET_UNWIND_WORD_MODE default_unwind_word_mode | |
413 | ||
dcefdf67 | 414 | /* In tree.c. */ |
672a6f42 NB |
415 | #define TARGET_MERGE_DECL_ATTRIBUTES merge_decl_attributes |
416 | #define TARGET_MERGE_TYPE_ATTRIBUTES merge_type_attributes | |
349ae713 | 417 | #define TARGET_ATTRIBUTE_TABLE NULL |
672a6f42 | 418 | |
dcefdf67 RH |
419 | /* In cse.c. */ |
420 | #define TARGET_ADDRESS_COST default_address_cost | |
421 | ||
f6155fda | 422 | /* In builtins.c. */ |
c15c90bb | 423 | #define TARGET_INIT_BUILTINS hook_void_void |
f6155fda | 424 | #define TARGET_EXPAND_BUILTIN default_expand_builtin |
58646b77 | 425 | #define TARGET_RESOLVE_OVERLOADED_BUILTIN NULL |
a05a80fc | 426 | #define TARGET_FOLD_BUILTIN hook_tree_tree_tree_bool_null |
f6155fda | 427 | |
6b889d89 | 428 | /* In tree-ssa-math-opts.c */ |
cc2137be | 429 | #define TARGET_BUILTIN_RECIPROCAL default_builtin_reciprocal |
6b889d89 | 430 | |
7c262518 RH |
431 | /* In varasm.c. */ |
432 | #ifndef TARGET_SECTION_TYPE_FLAGS | |
433 | #define TARGET_SECTION_TYPE_FLAGS default_section_type_flags | |
434 | #endif | |
435 | ||
772c5265 RH |
436 | #ifndef TARGET_STRIP_NAME_ENCODING |
437 | #define TARGET_STRIP_NAME_ENCODING default_strip_name_encoding | |
438 | #endif | |
439 | ||
47754fd5 RH |
440 | #ifndef TARGET_BINDS_LOCAL_P |
441 | #define TARGET_BINDS_LOCAL_P default_binds_local_p | |
442 | #endif | |
443 | ||
273a2526 RS |
444 | #ifndef TARGET_SHIFT_TRUNCATION_MASK |
445 | #define TARGET_SHIFT_TRUNCATION_MASK default_shift_truncation_mask | |
446 | #endif | |
447 | ||
bc23502b PB |
448 | #ifndef TARGET_MIN_DIVISIONS_FOR_RECIP_MUL |
449 | #define TARGET_MIN_DIVISIONS_FOR_RECIP_MUL default_min_divisions_for_recip_mul | |
450 | #endif | |
451 | ||
b12cbf2c AN |
452 | #ifndef TARGET_MODE_REP_EXTENDED |
453 | #define TARGET_MODE_REP_EXTENDED default_mode_rep_extended | |
454 | #endif | |
455 | ||
4977bab6 ZW |
456 | #ifndef TARGET_VALID_POINTER_MODE |
457 | #define TARGET_VALID_POINTER_MODE default_valid_pointer_mode | |
458 | #endif | |
459 | ||
6dd53648 RH |
460 | #ifndef TARGET_SCALAR_MODE_SUPPORTED_P |
461 | #define TARGET_SCALAR_MODE_SUPPORTED_P default_scalar_mode_supported_p | |
462 | #endif | |
463 | ||
0884546e BE |
464 | #ifndef TARGET_DECIMAL_FLOAT_SUPPORTED_P |
465 | #define TARGET_DECIMAL_FLOAT_SUPPORTED_P default_decimal_float_supported_p | |
466 | #endif | |
467 | ||
ab22c1fa CF |
468 | #ifndef TARGET_FIXED_POINT_SUPPORTED_P |
469 | #define TARGET_FIXED_POINT_SUPPORTED_P default_fixed_point_supported_p | |
470 | #endif | |
471 | ||
f676971a EC |
472 | #ifndef TARGET_VECTOR_MODE_SUPPORTED_P |
473 | #define TARGET_VECTOR_MODE_SUPPORTED_P hook_bool_mode_false | |
474 | #endif | |
475 | ||
c8e4f0e9 | 476 | #ifndef TARGET_VECTOR_OPAQUE_P |
3101faab | 477 | #define TARGET_VECTOR_OPAQUE_P hook_bool_const_tree_false |
62e1dfcf NC |
478 | #endif |
479 | ||
f676971a | 480 | /* In hooks.c. */ |
7b1bd3c5 | 481 | #define TARGET_CANNOT_MODIFY_JUMPS_P hook_bool_void_false |
a3424f5c | 482 | #define TARGET_BRANCH_TARGET_REGISTER_CLASS hook_int_void_no_regs |
fe3ad572 | 483 | #define TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED hook_bool_bool_false |
3a04ff64 | 484 | #define TARGET_CANNOT_FORCE_CONST_MEM hook_bool_rtx_false |
0b077eac | 485 | #define TARGET_CANNOT_COPY_INSN_P NULL |
3101faab | 486 | #define TARGET_COMMUTATIVE_P hook_bool_const_rtx_commutative_p |
7daebb7a | 487 | #define TARGET_DELEGITIMIZE_ADDRESS hook_rtx_rtx_identity |
3101faab | 488 | #define TARGET_USE_BLOCKS_FOR_CONSTANT_P hook_bool_mode_const_rtx_false |
aacd3885 RS |
489 | #define TARGET_MIN_ANCHOR_OFFSET 0 |
490 | #define TARGET_MAX_ANCHOR_OFFSET 0 | |
491 | #define TARGET_USE_ANCHORS_FOR_SYMBOL_P default_use_anchors_for_symbol_p | |
4977bab6 | 492 | #define TARGET_FUNCTION_OK_FOR_SIBCALL hook_bool_tree_tree_false |
3101faab | 493 | #define TARGET_COMP_TYPE_ATTRIBUTES hook_int_const_tree_const_tree_1 |
16d6f994 | 494 | #ifndef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES |
7b1bd3c5 | 495 | #define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES hook_void_tree |
16d6f994 | 496 | #endif |
7b1bd3c5 | 497 | #define TARGET_INSERT_ATTRIBUTES hook_void_tree_treeptr |
3101faab KG |
498 | #define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P hook_bool_const_tree_false |
499 | #define TARGET_MS_BITFIELD_LAYOUT_P hook_bool_const_tree_false | |
13c1cd82 | 500 | #define TARGET_ALIGN_ANON_BITFIELD hook_bool_void_false |
c2a64439 | 501 | #define TARGET_NARROW_VOLATILE_BITFIELD hook_bool_void_false |
f40751dd | 502 | #define TARGET_RTX_COSTS hook_bool_rtx_int_int_intp_bool_false |
3101faab | 503 | #define TARGET_MANGLE_TYPE hook_constcharptr_const_tree_null |
b48f503c | 504 | #define TARGET_ALLOCATE_INITIAL_VALUE NULL |
275b6d80 | 505 | |
215b063c PB |
506 | #define TARGET_UNSPEC_MAY_TRAP_P default_unspec_may_trap_p |
507 | ||
db2960f4 SL |
508 | #ifndef TARGET_SET_CURRENT_FUNCTION |
509 | #define TARGET_SET_CURRENT_FUNCTION hook_void_tree | |
510 | #endif | |
511 | ||
c15c90bb ZW |
512 | #ifndef TARGET_INIT_LIBFUNCS |
513 | #define TARGET_INIT_LIBFUNCS hook_void_void | |
514 | #endif | |
515 | ||
275b6d80 | 516 | #ifndef TARGET_IN_SMALL_DATA_P |
3101faab | 517 | #define TARGET_IN_SMALL_DATA_P hook_bool_const_tree_false |
275b6d80 | 518 | #endif |
e4ec2cac | 519 | |
5234b8f5 | 520 | #ifndef TARGET_MANGLE_DECL_ASSEMBLER_NAME |
cb8b507b | 521 | #define TARGET_MANGLE_DECL_ASSEMBLER_NAME default_mangle_decl_assembler_name |
5234b8f5 DS |
522 | #endif |
523 | ||
fb49053f | 524 | #ifndef TARGET_ENCODE_SECTION_INFO |
52859c77 | 525 | #define TARGET_ENCODE_SECTION_INFO default_encode_section_info |
fb49053f RH |
526 | #endif |
527 | ||
4d3e6fae FJ |
528 | #ifndef TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN |
529 | #define TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN hook_invalid_arg_for_unprototyped_fn | |
530 | #endif | |
531 | ||
3101faab KG |
532 | #define TARGET_INVALID_CONVERSION hook_constcharptr_const_tree_const_tree_null |
533 | #define TARGET_INVALID_UNARY_OP hook_constcharptr_int_const_tree_null | |
534 | #define TARGET_INVALID_BINARY_OP hook_constcharptr_int_const_tree_const_tree_null | |
4de67c26 | 535 | |
e129d93a ILT |
536 | #define TARGET_FIXED_CONDITION_CODE_REGS hook_bool_uintp_uintp_false |
537 | ||
538 | #define TARGET_CC_MODES_COMPATIBLE default_cc_modes_compatible | |
539 | ||
18dbd950 RS |
540 | #define TARGET_MACHINE_DEPENDENT_REORG 0 |
541 | ||
c35d187f | 542 | #define TARGET_BUILD_BUILTIN_VA_LIST std_build_builtin_va_list |
35cbb299 KT |
543 | #define TARGET_FN_ABI_VA_LIST std_fn_abi_va_list |
544 | #define TARGET_CANONICAL_VA_LIST_TYPE std_canonical_va_list_type | |
d7bd8aeb | 545 | #define TARGET_EXPAND_BUILTIN_VA_START 0 |
c35d187f | 546 | |
7bb1ad93 GK |
547 | #define TARGET_GET_PCH_VALIDITY default_get_pch_validity |
548 | #define TARGET_PCH_VALID_P default_pch_valid_p | |
8d932be3 | 549 | #define TARGET_CHECK_PCH_TARGET_FLAGS NULL |
7bb1ad93 | 550 | |
221ee7c9 KH |
551 | #define TARGET_DEFAULT_SHORT_ENUMS hook_bool_void_false |
552 | ||
d6da68b9 KH |
553 | #define TARGET_BUILTIN_SETJMP_FRAME_VALUE default_builtin_setjmp_frame_value |
554 | ||
61158923 | 555 | #define TARGET_MD_ASM_CLOBBERS hook_tree_tree_tree_tree_3rd_identity |
67dfe110 | 556 | |
3101faab | 557 | #define TARGET_DWARF_CALLING_CONVENTION hook_int_const_tree_0 |
a1c496cb | 558 | |
e54c7471 EB |
559 | #define TARGET_DWARF_HANDLE_FRAME_UNSPEC 0 |
560 | ||
9d30f3c1 JJ |
561 | #define TARGET_STDARG_OPTIMIZE_HOOK 0 |
562 | ||
7d69de61 RH |
563 | #define TARGET_STACK_PROTECT_GUARD default_stack_protect_guard |
564 | #define TARGET_STACK_PROTECT_FAIL default_external_stack_protect_fail | |
565 | ||
617a1b71 PB |
566 | #define TARGET_ARM_EABI_UNWINDER false |
567 | ||
586de218 KG |
568 | #define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_const_tree_false |
569 | #define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_const_tree_false | |
570 | #define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_false | |
61f71b34 | 571 | |
1f6acb82 | 572 | #define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null |
61f71b34 | 573 | #define TARGET_RETURN_IN_MEMORY default_return_in_memory |
586de218 | 574 | #define TARGET_RETURN_IN_MSB hook_bool_const_tree_false |
61f71b34 DD |
575 | |
576 | #define TARGET_EXPAND_BUILTIN_SAVEREGS default_expand_builtin_saveregs | |
577 | #define TARGET_SETUP_INCOMING_VARARGS default_setup_incoming_varargs | |
8dfa8fcd | 578 | #define TARGET_STRICT_ARGUMENT_NAMING hook_bool_CUMULATIVE_ARGS_false |
42ba5130 RH |
579 | #define TARGET_PRETEND_OUTGOING_VARARGS_NAMED \ |
580 | default_pretend_outgoing_varargs_named | |
581 | #define TARGET_SPLIT_COMPLEX_ARG NULL | |
61f71b34 | 582 | |
cd3ce9b4 | 583 | #define TARGET_GIMPLIFY_VA_ARG_EXPR std_gimplify_va_arg_expr |
6cdd5672 | 584 | #define TARGET_PASS_BY_REFERENCE hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false |
445cf5eb JM |
585 | |
586 | #define TARGET_RELAXED_ORDERING false | |
587 | ||
fe984136 | 588 | #define TARGET_MUST_PASS_IN_STACK must_pass_in_stack_var_size_or_pad |
6cdd5672 | 589 | #define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false |
78a52f11 | 590 | #define TARGET_ARG_PARTIAL_BYTES hook_int_CUMULATIVE_ARGS_mode_tree_bool_0 |
fe984136 | 591 | |
1d636cc6 | 592 | #define TARGET_FUNCTION_VALUE default_function_value |
150cdc9e | 593 | #define TARGET_INTERNAL_ARG_POINTER default_internal_arg_pointer |
2e3f842f L |
594 | #define TARGET_UPDATE_STACK_BOUNDARY NULL |
595 | #define TARGET_GET_DRAP_RTX NULL | |
007e61c2 | 596 | #define TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS hook_bool_void_true |
1d636cc6 | 597 | |
61f71b34 DD |
598 | #define TARGET_CALLS { \ |
599 | TARGET_PROMOTE_FUNCTION_ARGS, \ | |
600 | TARGET_PROMOTE_FUNCTION_RETURN, \ | |
601 | TARGET_PROMOTE_PROTOTYPES, \ | |
602 | TARGET_STRUCT_VALUE_RTX, \ | |
603 | TARGET_RETURN_IN_MEMORY, \ | |
c988af2b | 604 | TARGET_RETURN_IN_MSB, \ |
8cd5a4e0 | 605 | TARGET_PASS_BY_REFERENCE, \ |
61f71b34 DD |
606 | TARGET_EXPAND_BUILTIN_SAVEREGS, \ |
607 | TARGET_SETUP_INCOMING_VARARGS, \ | |
608 | TARGET_STRICT_ARGUMENT_NAMING, \ | |
609 | TARGET_PRETEND_OUTGOING_VARARGS_NAMED, \ | |
42ba5130 | 610 | TARGET_SPLIT_COMPLEX_ARG, \ |
6cdd5672 | 611 | TARGET_MUST_PASS_IN_STACK, \ |
78a52f11 | 612 | TARGET_CALLEE_COPIES, \ |
4d3e6fae | 613 | TARGET_ARG_PARTIAL_BYTES, \ |
1d636cc6 | 614 | TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN, \ |
150cdc9e | 615 | TARGET_FUNCTION_VALUE, \ |
007e61c2 | 616 | TARGET_INTERNAL_ARG_POINTER, \ |
2e3f842f L |
617 | TARGET_UPDATE_STACK_BOUNDARY, \ |
618 | TARGET_GET_DRAP_RTX, \ | |
007e61c2 | 619 | TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS \ |
61f71b34 DD |
620 | } |
621 | ||
617a1b71 PB |
622 | #ifndef TARGET_UNWIND_TABLES_DEFAULT |
623 | #define TARGET_UNWIND_TABLES_DEFAULT false | |
624 | #endif | |
84b8b0e0 ZW |
625 | |
626 | #ifndef TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME | |
627 | #define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME 0 | |
628 | #endif | |
629 | ||
630 | #ifndef TARGET_HANDLE_PRAGMA_EXTERN_PREFIX | |
631 | #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 0 | |
632 | #endif | |
633 | ||
76e68dca RS |
634 | #ifdef IRA_COVER_CLASSES |
635 | #define TARGET_IRA_COVER_CLASSES default_ira_cover_classes | |
636 | #else | |
637 | #define TARGET_IRA_COVER_CLASSES 0 | |
638 | #endif | |
639 | ||
8a99f6f9 R |
640 | #ifndef TARGET_SECONDARY_RELOAD |
641 | #define TARGET_SECONDARY_RELOAD default_secondary_reload | |
642 | #endif | |
643 | ||
e41b2a33 PB |
644 | #ifndef TARGET_EXPAND_TO_RTL_HOOK |
645 | #define TARGET_EXPAND_TO_RTL_HOOK hook_void_void | |
646 | #endif | |
647 | ||
648 | #ifndef TARGET_INSTANTIATE_DECLS | |
649 | #define TARGET_INSTANTIATE_DECLS hook_void_void | |
650 | #endif | |
651 | ||
dbc42c44 AS |
652 | #ifndef TARGET_HARD_REGNO_SCRATCH_OK |
653 | #define TARGET_HARD_REGNO_SCRATCH_OK default_hard_regno_scratch_ok | |
654 | #endif | |
655 | ||
c77cd3d1 UB |
656 | /* C specific. */ |
657 | #ifndef TARGET_C_MODE_FOR_SUFFIX | |
658 | #define TARGET_C_MODE_FOR_SUFFIX default_mode_for_suffix | |
659 | #endif | |
660 | ||
661 | #define TARGET_C \ | |
662 | { \ | |
663 | TARGET_C_MODE_FOR_SUFFIX \ | |
664 | } | |
4185ae53 PB |
665 | |
666 | /* C++ specific. */ | |
667 | #ifndef TARGET_CXX_GUARD_TYPE | |
668 | #define TARGET_CXX_GUARD_TYPE default_cxx_guard_type | |
669 | #endif | |
670 | ||
671 | #ifndef TARGET_CXX_GUARD_MASK_BIT | |
672 | #define TARGET_CXX_GUARD_MASK_BIT hook_bool_void_false | |
673 | #endif | |
674 | ||
46e995e0 PB |
675 | #ifndef TARGET_CXX_GET_COOKIE_SIZE |
676 | #define TARGET_CXX_GET_COOKIE_SIZE default_cxx_get_cookie_size | |
677 | #endif | |
678 | ||
679 | #ifndef TARGET_CXX_COOKIE_HAS_SIZE | |
680 | #define TARGET_CXX_COOKIE_HAS_SIZE hook_bool_void_false | |
681 | #endif | |
682 | ||
d59c7b4b NC |
683 | #ifndef TARGET_CXX_IMPORT_EXPORT_CLASS |
684 | #define TARGET_CXX_IMPORT_EXPORT_CLASS NULL | |
685 | #endif | |
686 | ||
44d10c10 PB |
687 | #ifndef TARGET_CXX_CDTOR_RETURNS_THIS |
688 | #define TARGET_CXX_CDTOR_RETURNS_THIS hook_bool_void_false | |
689 | #endif | |
690 | ||
af287697 MM |
691 | #ifndef TARGET_CXX_KEY_METHOD_MAY_BE_INLINE |
692 | #define TARGET_CXX_KEY_METHOD_MAY_BE_INLINE hook_bool_void_true | |
693 | #endif | |
694 | ||
1e731102 MM |
695 | #ifndef TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY |
696 | #define TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY hook_void_tree | |
697 | #endif | |
698 | ||
699 | #ifndef TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT | |
700 | #define TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT hook_bool_void_true | |
505970fc MM |
701 | #endif |
702 | ||
157600d0 GK |
703 | #ifndef TARGET_CXX_LIBRARY_RTTI_COMDAT |
704 | #define TARGET_CXX_LIBRARY_RTTI_COMDAT hook_bool_void_true | |
705 | #endif | |
706 | ||
9f62c3e3 PB |
707 | #ifndef TARGET_CXX_USE_AEABI_ATEXIT |
708 | #define TARGET_CXX_USE_AEABI_ATEXIT hook_bool_void_false | |
709 | #endif | |
710 | ||
97388150 DS |
711 | #ifndef TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT |
712 | #define TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT hook_bool_void_false | |
713 | #endif | |
714 | ||
43d9ad1d DS |
715 | #ifndef TARGET_CXX_ADJUST_CLASS_AT_DEFINITION |
716 | #define TARGET_CXX_ADJUST_CLASS_AT_DEFINITION hook_void_tree | |
717 | #endif | |
718 | ||
505970fc MM |
719 | #define TARGET_CXX \ |
720 | { \ | |
721 | TARGET_CXX_GUARD_TYPE, \ | |
722 | TARGET_CXX_GUARD_MASK_BIT, \ | |
723 | TARGET_CXX_GET_COOKIE_SIZE, \ | |
724 | TARGET_CXX_COOKIE_HAS_SIZE, \ | |
725 | TARGET_CXX_IMPORT_EXPORT_CLASS, \ | |
726 | TARGET_CXX_CDTOR_RETURNS_THIS, \ | |
727 | TARGET_CXX_KEY_METHOD_MAY_BE_INLINE, \ | |
1e731102 MM |
728 | TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY, \ |
729 | TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT, \ | |
157600d0 | 730 | TARGET_CXX_LIBRARY_RTTI_COMDAT, \ |
617a1b71 | 731 | TARGET_CXX_USE_AEABI_ATEXIT, \ |
97388150 | 732 | TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT, \ |
43d9ad1d | 733 | TARGET_CXX_ADJUST_CLASS_AT_DEFINITION \ |
4185ae53 PB |
734 | } |
735 | ||
feb60f03 NS |
736 | /* EMUTLS specific */ |
737 | #ifndef TARGET_EMUTLS_GET_ADDRESS | |
738 | #define TARGET_EMUTLS_GET_ADDRESS "__builtin___emutls_get_address" | |
739 | #endif | |
740 | ||
741 | #ifndef TARGET_EMUTLS_REGISTER_COMMON | |
742 | #define TARGET_EMUTLS_REGISTER_COMMON "__builtin___emutls_register_common" | |
743 | #endif | |
744 | ||
745 | #ifndef TARGET_EMUTLS_VAR_SECTION | |
746 | #define TARGET_EMUTLS_VAR_SECTION NULL | |
747 | #endif | |
748 | ||
749 | #ifndef TARGET_EMUTLS_TMPL_SECTION | |
750 | #define TARGET_EMUTLS_TMPL_SECTION NULL | |
751 | #endif | |
752 | ||
753 | #ifndef TARGET_EMUTLS_VAR_PREFIX | |
754 | #define TARGET_EMUTLS_VAR_PREFIX NULL | |
755 | #endif | |
756 | ||
757 | #ifndef TARGET_EMUTLS_TMPL_PREFIX | |
758 | #define TARGET_EMUTLS_TMPL_PREFIX NULL | |
759 | #endif | |
760 | ||
761 | #ifndef TARGET_EMUTLS_VAR_FIELDS | |
762 | #define TARGET_EMUTLS_VAR_FIELDS default_emutls_var_fields | |
763 | #endif | |
764 | ||
765 | #ifndef TARGET_EMUTLS_VAR_INIT | |
766 | #define TARGET_EMUTLS_VAR_INIT default_emutls_var_init | |
767 | #endif | |
768 | ||
769 | #ifndef TARGET_EMUTLS_VAR_ALIGN_FIXED | |
770 | #define TARGET_EMUTLS_VAR_ALIGN_FIXED false | |
771 | #endif | |
772 | ||
773 | #ifndef TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS | |
774 | #define TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS false | |
775 | #endif | |
776 | ||
777 | #define TARGET_EMUTLS \ | |
778 | { \ | |
779 | TARGET_EMUTLS_GET_ADDRESS, \ | |
780 | TARGET_EMUTLS_REGISTER_COMMON, \ | |
781 | TARGET_EMUTLS_VAR_SECTION, \ | |
782 | TARGET_EMUTLS_TMPL_SECTION, \ | |
783 | TARGET_EMUTLS_VAR_PREFIX, \ | |
784 | TARGET_EMUTLS_TMPL_PREFIX, \ | |
785 | TARGET_EMUTLS_VAR_FIELDS, \ | |
786 | TARGET_EMUTLS_VAR_INIT, \ | |
787 | TARGET_EMUTLS_VAR_ALIGN_FIXED, \ | |
788 | TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS \ | |
789 | } | |
790 | ||
ab442df7 MM |
791 | /* Function specific option attribute support. */ |
792 | #ifndef TARGET_OPTION_VALID_ATTRIBUTE_P | |
5779e713 MM |
793 | #define TARGET_OPTION_VALID_ATTRIBUTE_P \ |
794 | default_target_option_valid_attribute_p | |
ab442df7 MM |
795 | #endif |
796 | ||
797 | #ifndef TARGET_OPTION_SAVE | |
798 | #define TARGET_OPTION_SAVE NULL | |
799 | #endif | |
800 | ||
801 | #ifndef TARGET_OPTION_RESTORE | |
802 | #define TARGET_OPTION_RESTORE NULL | |
803 | #endif | |
804 | ||
805 | #ifndef TARGET_OPTION_PRINT | |
806 | #define TARGET_OPTION_PRINT NULL | |
807 | #endif | |
808 | ||
809 | #ifndef TARGET_OPTION_PRAGMA_PARSE | |
5779e713 | 810 | #define TARGET_OPTION_PRAGMA_PARSE default_target_option_pragma_parse |
ab442df7 MM |
811 | #endif |
812 | ||
813 | #ifndef TARGET_OPTION_CAN_INLINE_P | |
814 | #define TARGET_OPTION_CAN_INLINE_P default_target_option_can_inline_p | |
815 | #endif | |
816 | ||
817 | #define TARGET_OPTION_HOOKS \ | |
818 | { \ | |
819 | TARGET_OPTION_VALID_ATTRIBUTE_P, \ | |
820 | TARGET_OPTION_SAVE, \ | |
821 | TARGET_OPTION_RESTORE, \ | |
822 | TARGET_OPTION_PRINT, \ | |
823 | TARGET_OPTION_PRAGMA_PARSE, \ | |
824 | TARGET_OPTION_CAN_INLINE_P, \ | |
825 | } | |
826 | ||
672a6f42 NB |
827 | /* The whole shebang. */ |
828 | #define TARGET_INITIALIZER \ | |
829 | { \ | |
08c148a8 | 830 | TARGET_ASM_OUT, \ |
c237e94a | 831 | TARGET_SCHED, \ |
7ccf35ed | 832 | TARGET_VECTORIZE, \ |
75685792 RS |
833 | TARGET_DEFAULT_TARGET_FLAGS, \ |
834 | TARGET_HANDLE_OPTION, \ | |
121f163f | 835 | TARGET_HELP, \ |
93f90be6 | 836 | TARGET_EH_RETURN_FILTER_MODE, \ |
c7ff6e7a AK |
837 | TARGET_LIBGCC_CMP_RETURN_MODE, \ |
838 | TARGET_LIBGCC_SHIFT_COUNT_MODE, \ | |
7b0518e3 | 839 | TARGET_UNWIND_WORD_MODE, \ |
672a6f42 NB |
840 | TARGET_MERGE_DECL_ATTRIBUTES, \ |
841 | TARGET_MERGE_TYPE_ATTRIBUTES, \ | |
91d231cb | 842 | TARGET_ATTRIBUTE_TABLE, \ |
8d8e52be | 843 | TARGET_COMP_TYPE_ATTRIBUTES, \ |
12a68f1f | 844 | TARGET_SET_DEFAULT_TYPE_ATTRIBUTES, \ |
f6155fda | 845 | TARGET_INSERT_ATTRIBUTES, \ |
91d231cb | 846 | TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P, \ |
f913c102 | 847 | TARGET_MS_BITFIELD_LAYOUT_P, \ |
9a8ce21f | 848 | TARGET_DECIMAL_FLOAT_SUPPORTED_P, \ |
ab22c1fa | 849 | TARGET_FIXED_POINT_SUPPORTED_P, \ |
13c1cd82 | 850 | TARGET_ALIGN_ANON_BITFIELD, \ |
c2a64439 | 851 | TARGET_NARROW_VOLATILE_BITFIELD, \ |
f6155fda | 852 | TARGET_INIT_BUILTINS, \ |
7c262518 | 853 | TARGET_EXPAND_BUILTIN, \ |
58646b77 | 854 | TARGET_RESOLVE_OVERLOADED_BUILTIN, \ |
c2dda19b | 855 | TARGET_FOLD_BUILTIN, \ |
6b889d89 | 856 | TARGET_BUILTIN_RECIPROCAL, \ |
608063c3 | 857 | TARGET_MANGLE_TYPE, \ |
c15c90bb | 858 | TARGET_INIT_LIBFUNCS, \ |
7c262518 | 859 | TARGET_SECTION_TYPE_FLAGS, \ |
ae46c4e0 | 860 | TARGET_CANNOT_MODIFY_JUMPS_P, \ |
7bb1ad93 | 861 | TARGET_BRANCH_TARGET_REGISTER_CLASS, \ |
fe3ad572 | 862 | TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED, \ |
3a04ff64 | 863 | TARGET_CANNOT_FORCE_CONST_MEM, \ |
0b077eac | 864 | TARGET_CANNOT_COPY_INSN_P, \ |
8ddf681a | 865 | TARGET_COMMUTATIVE_P, \ |
7daebb7a | 866 | TARGET_DELEGITIMIZE_ADDRESS, \ |
aacd3885 RS |
867 | TARGET_USE_BLOCKS_FOR_CONSTANT_P, \ |
868 | TARGET_MIN_ANCHOR_OFFSET, \ | |
869 | TARGET_MAX_ANCHOR_OFFSET, \ | |
870 | TARGET_USE_ANCHORS_FOR_SYMBOL_P, \ | |
4977bab6 | 871 | TARGET_FUNCTION_OK_FOR_SIBCALL, \ |
db2960f4 | 872 | TARGET_SET_CURRENT_FUNCTION, \ |
fb49053f | 873 | TARGET_IN_SMALL_DATA_P, \ |
47754fd5 | 874 | TARGET_BINDS_LOCAL_P, \ |
5234b8f5 | 875 | TARGET_MANGLE_DECL_ASSEMBLER_NAME, \ |
772c5265 | 876 | TARGET_ENCODE_SECTION_INFO, \ |
47754fd5 | 877 | TARGET_STRIP_NAME_ENCODING, \ |
273a2526 | 878 | TARGET_SHIFT_TRUNCATION_MASK, \ |
bc23502b | 879 | TARGET_MIN_DIVISIONS_FOR_RECIP_MUL, \ |
b12cbf2c | 880 | TARGET_MODE_REP_EXTENDED, \ |
4977bab6 | 881 | TARGET_VALID_POINTER_MODE, \ |
6dd53648 | 882 | TARGET_SCALAR_MODE_SUPPORTED_P, \ |
f676971a | 883 | TARGET_VECTOR_MODE_SUPPORTED_P, \ |
c8e4f0e9 | 884 | TARGET_VECTOR_OPAQUE_P, \ |
3c50106f | 885 | TARGET_RTX_COSTS, \ |
dcefdf67 | 886 | TARGET_ADDRESS_COST, \ |
b48f503c | 887 | TARGET_ALLOCATE_INITIAL_VALUE, \ |
215b063c | 888 | TARGET_UNSPEC_MAY_TRAP_P, \ |
96714395 | 889 | TARGET_DWARF_REGISTER_SPAN, \ |
37ea0b7e | 890 | TARGET_INIT_DWARF_REG_SIZES_EXTRA, \ |
e129d93a ILT |
891 | TARGET_FIXED_CONDITION_CODE_REGS, \ |
892 | TARGET_CC_MODES_COMPATIBLE, \ | |
18dbd950 | 893 | TARGET_MACHINE_DEPENDENT_REORG, \ |
c35d187f | 894 | TARGET_BUILD_BUILTIN_VA_LIST, \ |
35cbb299 KT |
895 | TARGET_FN_ABI_VA_LIST, \ |
896 | TARGET_CANONICAL_VA_LIST_TYPE, \ | |
d7bd8aeb | 897 | TARGET_EXPAND_BUILTIN_VA_START, \ |
cdc3ddb8 | 898 | TARGET_GIMPLIFY_VA_ARG_EXPR, \ |
7bb1ad93 GK |
899 | TARGET_GET_PCH_VALIDITY, \ |
900 | TARGET_PCH_VALID_P, \ | |
8d932be3 | 901 | TARGET_CHECK_PCH_TARGET_FLAGS, \ |
221ee7c9 | 902 | TARGET_DEFAULT_SHORT_ENUMS, \ |
d6da68b9 | 903 | TARGET_BUILTIN_SETJMP_FRAME_VALUE, \ |
67dfe110 | 904 | TARGET_MD_ASM_CLOBBERS, \ |
a1c496cb | 905 | TARGET_DWARF_CALLING_CONVENTION, \ |
e54c7471 | 906 | TARGET_DWARF_HANDLE_FRAME_UNSPEC, \ |
9d30f3c1 | 907 | TARGET_STDARG_OPTIMIZE_HOOK, \ |
7d69de61 RH |
908 | TARGET_STACK_PROTECT_GUARD, \ |
909 | TARGET_STACK_PROTECT_FAIL, \ | |
e7e64a25 | 910 | TARGET_INVALID_WITHIN_DOLOOP, \ |
43d9ad1d | 911 | TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, \ |
42ba5130 | 912 | TARGET_CALLS, \ |
4de67c26 JM |
913 | TARGET_INVALID_CONVERSION, \ |
914 | TARGET_INVALID_UNARY_OP, \ | |
915 | TARGET_INVALID_BINARY_OP, \ | |
76e68dca | 916 | TARGET_IRA_COVER_CLASSES, \ |
8a99f6f9 | 917 | TARGET_SECONDARY_RELOAD, \ |
e41b2a33 PB |
918 | TARGET_EXPAND_TO_RTL_HOOK, \ |
919 | TARGET_INSTANTIATE_DECLS, \ | |
dbc42c44 | 920 | TARGET_HARD_REGNO_SCRATCH_OK, \ |
c77cd3d1 | 921 | TARGET_C, \ |
4185ae53 | 922 | TARGET_CXX, \ |
feb60f03 | 923 | TARGET_EMUTLS, \ |
ab442df7 | 924 | TARGET_OPTION_HOOKS, \ |
c77cd3d1 | 925 | TARGET_EXTRA_LIVE_ON_ENTRY, \ |
617a1b71 | 926 | TARGET_UNWIND_TABLES_DEFAULT, \ |
47754fd5 | 927 | TARGET_HAVE_NAMED_SECTIONS, \ |
434aeebb | 928 | TARGET_HAVE_SWITCHABLE_BSS_SECTIONS, \ |
47754fd5 | 929 | TARGET_HAVE_CTORS_DTORS, \ |
275b6d80 | 930 | TARGET_HAVE_TLS, \ |
7606e68f | 931 | TARGET_HAVE_SRODATA_SECTION, \ |
1bc7c5b6 ZW |
932 | TARGET_TERMINATE_DW2_EH_FRAME_INFO, \ |
933 | TARGET_ASM_FILE_START_APP_OFF, \ | |
934 | TARGET_ASM_FILE_START_FILE_DIRECTIVE, \ | |
84b8b0e0 ZW |
935 | TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, \ |
936 | TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, \ | |
445cf5eb | 937 | TARGET_RELAXED_ORDERING, \ |
617a1b71 | 938 | TARGET_ARM_EABI_UNWINDER \ |
672a6f42 | 939 | } |
e4ec2cac | 940 | |
1f1d5130 MS |
941 | #define TARGET_HANDLE_C_OPTION default_handle_c_option |
942 | #define TARGETCM_INITIALIZER { TARGET_HANDLE_C_OPTION } | |
943 | ||
e4ec2cac | 944 | #include "hooks.h" |
61f71b34 | 945 | #include "targhooks.h" |