Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/i386/i386-protos.h @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 /* Definitions of target machine for GCC for IA-32. | 1 /* Definitions of target machine for GCC for IA-32. |
2 Copyright (C) 1988-2017 Free Software Foundation, Inc. | 2 Copyright (C) 1988-2018 Free Software Foundation, Inc. |
3 | 3 |
4 This file is part of GCC. | 4 This file is part of GCC. |
5 | 5 |
6 GCC is free software; you can redistribute it and/or modify | 6 GCC is free software; you can redistribute it and/or modify |
7 it under the terms of the GNU General Public License as published by | 7 it under the terms of the GNU General Public License as published by |
50 #ifdef RTX_CODE | 50 #ifdef RTX_CODE |
51 extern int standard_80387_constant_p (rtx); | 51 extern int standard_80387_constant_p (rtx); |
52 extern const char *standard_80387_constant_opcode (rtx); | 52 extern const char *standard_80387_constant_opcode (rtx); |
53 extern rtx standard_80387_constant_rtx (int); | 53 extern rtx standard_80387_constant_rtx (int); |
54 extern int standard_sse_constant_p (rtx, machine_mode); | 54 extern int standard_sse_constant_p (rtx, machine_mode); |
55 extern const char *standard_sse_constant_opcode (rtx_insn *, rtx); | 55 extern const char *standard_sse_constant_opcode (rtx_insn *, rtx *); |
56 extern bool ix86_standard_x87sse_constant_load_p (const rtx_insn *, rtx); | 56 extern bool ix86_standard_x87sse_constant_load_p (const rtx_insn *, rtx); |
57 extern bool symbolic_reference_mentioned_p (rtx); | 57 extern bool symbolic_reference_mentioned_p (rtx); |
58 extern bool extended_reg_mentioned_p (rtx); | 58 extern bool extended_reg_mentioned_p (rtx); |
59 extern bool x86_extended_QIreg_mentioned_p (rtx_insn *); | 59 extern bool x86_extended_QIreg_mentioned_p (rtx_insn *); |
60 extern bool x86_extended_reg_mentioned_p (rtx); | 60 extern bool x86_extended_reg_mentioned_p (rtx); |
131 extern bool ix86_expand_int_movcc (rtx[]); | 131 extern bool ix86_expand_int_movcc (rtx[]); |
132 extern bool ix86_expand_fp_movcc (rtx[]); | 132 extern bool ix86_expand_fp_movcc (rtx[]); |
133 extern bool ix86_expand_fp_vcond (rtx[]); | 133 extern bool ix86_expand_fp_vcond (rtx[]); |
134 extern bool ix86_expand_int_vcond (rtx[]); | 134 extern bool ix86_expand_int_vcond (rtx[]); |
135 extern void ix86_expand_vec_perm (rtx[]); | 135 extern void ix86_expand_vec_perm (rtx[]); |
136 extern bool ix86_expand_vec_perm_const (rtx[]); | |
137 extern bool ix86_expand_mask_vec_cmp (rtx[]); | 136 extern bool ix86_expand_mask_vec_cmp (rtx[]); |
138 extern bool ix86_expand_int_vec_cmp (rtx[]); | 137 extern bool ix86_expand_int_vec_cmp (rtx[]); |
139 extern bool ix86_expand_fp_vec_cmp (rtx[]); | 138 extern bool ix86_expand_fp_vec_cmp (rtx[]); |
140 extern void ix86_expand_sse_movcc (rtx, rtx, rtx, rtx); | 139 extern void ix86_expand_sse_movcc (rtx, rtx, rtx, rtx); |
141 extern void ix86_expand_sse_unpack (rtx, rtx, bool, bool); | 140 extern void ix86_expand_sse_unpack (rtx, rtx, bool, bool); |
142 extern bool ix86_expand_int_addcc (rtx[]); | 141 extern bool ix86_expand_int_addcc (rtx[]); |
143 extern rtx ix86_expand_call (rtx, rtx, rtx, rtx, rtx, bool); | 142 extern rtx_insn *ix86_expand_call (rtx, rtx, rtx, rtx, rtx, bool); |
144 extern void ix86_split_call_vzeroupper (rtx, rtx); | 143 extern void ix86_split_call_vzeroupper (rtx, rtx); |
145 extern void x86_initialize_trampoline (rtx, rtx, rtx); | 144 extern void x86_initialize_trampoline (rtx, rtx, rtx); |
146 extern rtx ix86_zero_extend_to_Pmode (rtx); | 145 extern rtx ix86_zero_extend_to_Pmode (rtx); |
147 extern void ix86_split_long_move (rtx[]); | 146 extern void ix86_split_long_move (rtx[]); |
148 extern void ix86_split_ashl (rtx *, rtx, machine_mode); | 147 extern void ix86_split_ashl (rtx *, rtx, machine_mode); |
155 | 154 |
156 extern rtx assign_386_stack_local (machine_mode, enum ix86_stack_slot); | 155 extern rtx assign_386_stack_local (machine_mode, enum ix86_stack_slot); |
157 extern int ix86_attr_length_immediate_default (rtx_insn *, bool); | 156 extern int ix86_attr_length_immediate_default (rtx_insn *, bool); |
158 extern int ix86_attr_length_address_default (rtx_insn *); | 157 extern int ix86_attr_length_address_default (rtx_insn *); |
159 extern int ix86_attr_length_vex_default (rtx_insn *, bool, bool); | 158 extern int ix86_attr_length_vex_default (rtx_insn *, bool, bool); |
160 | |
161 extern machine_mode ix86_fp_compare_mode (enum rtx_code); | |
162 | 159 |
163 extern rtx ix86_libcall_value (machine_mode); | 160 extern rtx ix86_libcall_value (machine_mode); |
164 extern bool ix86_function_arg_regno_p (int); | 161 extern bool ix86_function_arg_regno_p (int); |
165 extern void ix86_asm_output_function_label (FILE *, const char *, tree); | 162 extern void ix86_asm_output_function_label (FILE *, const char *, tree); |
166 extern void ix86_call_abi_override (const_tree); | 163 extern void ix86_call_abi_override (const_tree); |
232 extern void ix86_expand_mul_widen_evenodd (rtx, rtx, rtx, bool, bool); | 229 extern void ix86_expand_mul_widen_evenodd (rtx, rtx, rtx, bool, bool); |
233 extern void ix86_expand_mul_widen_hilo (rtx, rtx, rtx, bool, bool); | 230 extern void ix86_expand_mul_widen_hilo (rtx, rtx, rtx, bool, bool); |
234 extern void ix86_expand_sse2_mulv4si3 (rtx, rtx, rtx); | 231 extern void ix86_expand_sse2_mulv4si3 (rtx, rtx, rtx); |
235 extern void ix86_expand_sse2_mulvxdi3 (rtx, rtx, rtx); | 232 extern void ix86_expand_sse2_mulvxdi3 (rtx, rtx, rtx); |
236 extern void ix86_expand_sse2_abs (rtx, rtx); | 233 extern void ix86_expand_sse2_abs (rtx, rtx); |
237 | |
238 extern bool ix86_bnd_prefixed_insn_p (rtx); | |
239 | 234 |
240 /* In i386-c.c */ | 235 /* In i386-c.c */ |
241 extern void ix86_target_macros (void); | 236 extern void ix86_target_macros (void); |
242 extern void ix86_register_pragmas (void); | 237 extern void ix86_register_pragmas (void); |
243 | 238 |
255 extern void i386_pe_asm_output_aligned_decl_common (FILE *, tree, | 250 extern void i386_pe_asm_output_aligned_decl_common (FILE *, tree, |
256 const char *, | 251 const char *, |
257 HOST_WIDE_INT, | 252 HOST_WIDE_INT, |
258 HOST_WIDE_INT); | 253 HOST_WIDE_INT); |
259 extern void i386_pe_file_end (void); | 254 extern void i386_pe_file_end (void); |
255 extern void i386_pe_asm_lto_start (void); | |
256 extern void i386_pe_asm_lto_end (void); | |
260 extern void i386_pe_start_function (FILE *, const char *, tree); | 257 extern void i386_pe_start_function (FILE *, const char *, tree); |
261 extern void i386_pe_end_function (FILE *, const char *, tree); | 258 extern void i386_pe_end_function (FILE *, const char *, tree); |
259 extern void i386_pe_end_cold_function (FILE *, const char *, tree); | |
262 extern void i386_pe_assemble_visibility (tree, int); | 260 extern void i386_pe_assemble_visibility (tree, int); |
263 extern tree i386_pe_mangle_decl_assembler_name (tree, tree); | 261 extern tree i386_pe_mangle_decl_assembler_name (tree, tree); |
264 extern tree i386_pe_mangle_assembler_name (const char *); | 262 extern tree i386_pe_mangle_assembler_name (const char *); |
265 extern void i386_pe_record_stub (const char *); | 263 extern void i386_pe_record_stub (const char *); |
266 | 264 |
267 extern void i386_pe_seh_init (FILE *); | 265 extern void i386_pe_seh_init (FILE *); |
268 extern void i386_pe_seh_end_prologue (FILE *); | 266 extern void i386_pe_seh_end_prologue (FILE *); |
267 extern void i386_pe_seh_cold_init (FILE *, const char *); | |
269 extern void i386_pe_seh_unwind_emit (FILE *, rtx_insn *); | 268 extern void i386_pe_seh_unwind_emit (FILE *, rtx_insn *); |
270 extern void i386_pe_seh_emit_except_personality (rtx); | 269 extern void i386_pe_seh_emit_except_personality (rtx); |
271 extern void i386_pe_seh_init_sections (void); | 270 extern void i386_pe_seh_init_sections (void); |
272 | 271 |
273 /* In winnt-cxx.c and winnt-stubs.c */ | 272 /* In winnt-cxx.c and winnt-stubs.c */ |
274 extern void i386_pe_adjust_class_at_definition (tree); | 273 extern void i386_pe_adjust_class_at_definition (tree); |
275 extern bool i386_pe_type_dllimport_p (tree); | 274 extern bool i386_pe_type_dllimport_p (tree); |
276 extern bool i386_pe_type_dllexport_p (tree); | 275 extern bool i386_pe_type_dllexport_p (tree); |
277 | 276 |
278 extern int i386_pe_reloc_rw_mask (void); | 277 extern int i386_pe_reloc_rw_mask (void); |
279 | |
280 extern rtx maybe_get_pool_constant (rtx); | |
281 | 278 |
282 extern char internal_label_prefix[16]; | 279 extern char internal_label_prefix[16]; |
283 extern int internal_label_prefix_len; | 280 extern int internal_label_prefix_len; |
284 | 281 |
285 extern bool ix86_epilogue_uses (int); | 282 extern bool ix86_epilogue_uses (int); |
308 #ifdef HAVE_ATTR_cpu | 305 #ifdef HAVE_ATTR_cpu |
309 extern enum attr_cpu ix86_schedule; | 306 extern enum attr_cpu ix86_schedule; |
310 #endif | 307 #endif |
311 | 308 |
312 extern const char * ix86_output_call_insn (rtx_insn *insn, rtx call_op); | 309 extern const char * ix86_output_call_insn (rtx_insn *insn, rtx call_op); |
310 extern const char * ix86_output_indirect_jmp (rtx call_op); | |
311 extern const char * ix86_output_function_return (bool long_p); | |
312 extern const char * ix86_output_indirect_function_return (rtx ret_op); | |
313 extern void ix86_split_simple_return_pop_internal (rtx); | |
313 extern bool ix86_operands_ok_for_move_multiple (rtx *operands, bool load, | 314 extern bool ix86_operands_ok_for_move_multiple (rtx *operands, bool load, |
314 machine_mode mode); | 315 machine_mode mode); |
315 extern int ix86_min_insn_size (rtx_insn *); | 316 extern int ix86_min_insn_size (rtx_insn *); |
316 | 317 |
317 extern int ix86_issue_rate (void); | 318 extern int ix86_issue_rate (void); |
325 extern void ix86_bd_do_dispatch (rtx_insn *insn, int mode); | 326 extern void ix86_bd_do_dispatch (rtx_insn *insn, int mode); |
326 | 327 |
327 extern void ix86_core2i7_init_hooks (void); | 328 extern void ix86_core2i7_init_hooks (void); |
328 | 329 |
329 extern int ix86_atom_sched_reorder (FILE *, int, rtx_insn **, int *, int); | 330 extern int ix86_atom_sched_reorder (FILE *, int, rtx_insn **, int *, int); |
331 | |
332 extern poly_int64 ix86_push_rounding (poly_int64); | |
330 | 333 |
331 #ifdef RTX_CODE | 334 #ifdef RTX_CODE |
332 /* Target data for multipass lookahead scheduling. | 335 /* Target data for multipass lookahead scheduling. |
333 Currently used for Core 2/i7 tuning. */ | 336 Currently used for Core 2/i7 tuning. */ |
334 struct ix86_first_cycle_multipass_data_ | 337 struct ix86_first_cycle_multipass_data_ |