Mercurial > hg > CbC > CbC_gcc
diff gcc/emit-rtl.h @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/gcc/emit-rtl.h Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/emit-rtl.h Thu Oct 25 07:37:49 2018 +0900 @@ -1,5 +1,5 @@ /* Exported functions from emit-rtl.c - Copyright (C) 2004-2017 Free Software Foundation, Inc. + Copyright (C) 2004-2018 Free Software Foundation, Inc. This file is part of GCC. @@ -28,12 +28,12 @@ /* Number of bytes of args popped by function being compiled on its return. Zero if no bytes are to be popped. May affect compilation of return insn or of function epilogue. */ - int pops_args; + poly_int64_pod pops_args; /* If function's args have a fixed size, this is that size, in bytes. Otherwise, it is -1. May affect compilation of return insn or of function epilogue. */ - int size; + poly_int64_pod size; /* # bytes the prologue should push and pretend that the caller pushed them. The prologue must do this, but only if parms can be passed in @@ -68,16 +68,13 @@ /* # of bytes of outgoing arguments. If ACCUMULATE_OUTGOING_ARGS is defined, the needed space is pushed by the prologue. */ - int outgoing_args_size; + poly_int64_pod outgoing_args_size; /* If nonzero, an RTL expression for the location at which the current function returns its result. If the current function returns its result in a register, current_function_return_rtx will always be the hard register containing the result. */ rtx return_rtx; - /* If nonxero, an RTL expression for the lcoation at which the current - function returns bounds for its result. */ - rtx return_bnd; /* Vector of initial-value pairs. Each pair consists of a pseudo register of approprite mode that stores the initial value a hard @@ -126,7 +123,7 @@ /* Offset to end of allocated area of stack frame. If stack grows down, this is the address of the last stack slot allocated. If stack grows up, this is the address for the next slot. */ - HOST_WIDE_INT x_frame_offset; + poly_int64_pod x_frame_offset; /* Insn after which register parms and SAVE_EXPRs are born, if nonopt. */ rtx_insn *x_parm_birth_insn; @@ -333,13 +330,13 @@ extern void set_mem_expr (rtx, tree); /* Set the offset for MEM to OFFSET. */ -extern void set_mem_offset (rtx, HOST_WIDE_INT); +extern void set_mem_offset (rtx, poly_int64); /* Clear the offset recorded for MEM. */ extern void clear_mem_offset (rtx); /* Set the size for MEM to SIZE. */ -extern void set_mem_size (rtx, HOST_WIDE_INT); +extern void set_mem_size (rtx, poly_int64); /* Clear the size recorded for MEM. */ extern void clear_mem_size (rtx); @@ -362,13 +359,14 @@ extern rtx copy_insn_1 (rtx); extern rtx copy_insn (rtx); extern rtx_insn *copy_delay_slot_insn (rtx_insn *); -extern rtx gen_int_mode (HOST_WIDE_INT, machine_mode); +extern rtx gen_int_mode (poly_int64, machine_mode); extern rtx_insn *emit_copy_of_insn_after (rtx_insn *, rtx_insn *); extern void set_reg_attrs_from_value (rtx, rtx); extern void set_reg_attrs_for_parm (rtx, rtx); extern void set_reg_attrs_for_decl_rtl (tree t, rtx x); extern void adjust_reg_mode (rtx, machine_mode); extern int mem_expr_equal_p (const_tree, const_tree); +extern rtx gen_int_shift_amount (machine_mode, poly_int64); extern bool need_atomic_barrier_p (enum memmodel, bool); @@ -438,6 +436,13 @@ return crtl->emit.x_cur_insn_uid; } +extern bool valid_for_const_vector_p (machine_mode, rtx); +extern rtx gen_const_vec_duplicate (machine_mode, rtx); +extern rtx gen_vec_duplicate (machine_mode, rtx); + +extern rtx gen_const_vec_series (machine_mode, rtx, rtx); +extern rtx gen_vec_series (machine_mode, rtx, rtx); + extern void set_decl_incoming_rtl (tree, rtx, bool); /* Return a memory reference like MEMREF, but with its mode changed @@ -481,10 +486,10 @@ #define adjust_automodify_address_nv(MEMREF, MODE, ADDR, OFFSET) \ adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 0) -extern rtx adjust_address_1 (rtx, machine_mode, HOST_WIDE_INT, int, int, - int, HOST_WIDE_INT); +extern rtx adjust_address_1 (rtx, machine_mode, poly_int64, int, int, + int, poly_int64); extern rtx adjust_automodify_address_1 (rtx, machine_mode, rtx, - HOST_WIDE_INT, int); + poly_int64, int); /* Return a memory reference like MEMREF, but whose address is changed by adding OFFSET, an RTX, to it. POW2 is the highest power of two factor @@ -499,7 +504,7 @@ /* Similar, except that BITPOS has not yet been applied to REF, so if we alter MEM_OFFSET according to T then we should subtract BITPOS expecting that it'll be added back in later. */ -extern void set_mem_attributes_minus_bitpos (rtx, tree, int, HOST_WIDE_INT); +extern void set_mem_attributes_minus_bitpos (rtx, tree, int, poly_int64); /* Return OFFSET if XEXP (MEM, 0) - OFFSET is known to be ALIGN bits aligned for 0 <= OFFSET < ALIGN / BITS_PER_UNIT, or @@ -508,7 +513,7 @@ /* Return a memory reference like MEMREF, but with its mode widened to MODE and adjusted by OFFSET. */ -extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT); +extern rtx widen_memory_access (rtx, machine_mode, poly_int64); extern void maybe_set_max_label_num (rtx_code_label *x);