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