GCC Middle and Back End API Reference
|
Data Fields | |
tree | tree_value |
enum machine_mode | mode |
rtx | value |
rtx | initial_value |
rtx | reg |
rtx | tail_call_reg |
rtx | parallel_value |
int | unsignedp |
int | partial |
int | pass_on_stack |
struct locate_and_pad_arg_data | locate |
rtx | stack |
rtx | stack_slot |
rtx | save_area |
rtx * | aligned_regs |
int | n_aligned_regs |
Data structure and subroutines used within expand_call.
rtx* arg_data::aligned_regs |
If an argument's alignment does not permit direct copying into registers, copy in smaller-sized pieces into pseudos. These are stored in a block pointed to by this field. The next field says how many word-sized pseudos we made.
Referenced by restore_fixed_argument_area().
rtx arg_data::initial_value |
Initially-compute RTL value for argument; only for const functions.
Referenced by compute_argument_block_size().
struct locate_and_pad_arg_data arg_data::locate |
Some fields packaged up for locate_and_pad_parm.
Referenced by initialize_argument_information().
enum machine_mode arg_data::mode |
Mode for value; TYPE_MODE unless promoted.
Referenced by initialize_argument_information().
int arg_data::n_aligned_regs |
rtx arg_data::parallel_value |
If REG is a PARALLEL, this is a copy of VALUE pulled into the correct form for emit_group_move.
Referenced by call_expr_flags().
int arg_data::partial |
Number of bytes to put in registers. 0 means put the whole arg in registers. Also 0 if not passed in registers.
Referenced by initialize_argument_information().
int arg_data::pass_on_stack |
Nonzero if argument must be passed on stack. Note that some arguments may be passed on the stack even though pass_on_stack is zero, just because FUNCTION_ARG says so. pass_on_stack identifies arguments that *cannot* go in registers.
Referenced by initialize_argument_information().
rtx arg_data::reg |
Register to pass this argument in, 0 if passed on stack, or an PARALLEL if the arg is to be copied into multiple non-contiguous registers.
Referenced by initialize_argument_information().
rtx arg_data::save_area |
Place that this stack area has been saved, if needed.
rtx arg_data::stack |
Location on the stack at which parameter should be stored. The store has already been done if STACK == VALUE.
rtx arg_data::stack_slot |
Location on the stack of the start of this argument slot. This can differ from STACK if this arg pads downward. This location is known to be aligned to TARGET_FUNCTION_ARG_BOUNDARY.
rtx arg_data::tail_call_reg |
Register to pass this argument in when generating tail call sequence. This is not the same register as for normal calls on machines with register windows.
Referenced by initialize_argument_information().
tree arg_data::tree_value |
Tree node for this argument.
Referenced by initialize_argument_information().
int arg_data::unsignedp |
If REG was promoted from the actual mode of the argument expression, indicates whether the promotion is sign- or zero-extended.
Referenced by compute_argument_block_size(), and initialize_argument_information().
rtx arg_data::value |
Current RTL value for argument, or 0 if it isn't precomputed.
Referenced by compute_argument_block_size().