#include <function.h>
Field Documentation
rtx expr_status::x_apply_args_value |
Similarly for __builtin_apply_args.
rtx expr_status::x_forced_labels |
List of labels that must never be deleted.
int expr_status::x_inhibit_defer_pop |
Under some ABIs, it is the caller's responsibility to pop arguments
pushed for function calls. A naive implementation would simply pop
the arguments immediately after each call. However, if several
function calls are made in a row, it is typically cheaper to pop
all the arguments after all of the calls are complete since a
single pop instruction can be used. Therefore, GCC attempts to
defer popping the arguments until absolutely necessary. (For
example, at the end of a conditional, the arguments must be popped,
since code outside the conditional won't know whether or not the
arguments need to be popped.)
When INHIBIT_DEFER_POP is nonzero, however, the compiler does not
attempt to defer pops. Instead, the stack is popped immediately
after each call. Rather then setting this variable directly, use
NO_DEFER_POP and OK_DEFER_POP.
int expr_status::x_pending_stack_adjust |
Number of units that we should eventually pop off the stack.
These are the arguments to function calls that have already returned.
rtx expr_status::x_saveregs_value |
Nonzero means __builtin_saveregs has already been done in this function.
The value is the pseudoreg containing the value __builtin_saveregs
returned.
int expr_status::x_stack_pointer_delta |
If PREFERRED_STACK_BOUNDARY and PUSH_ROUNDING are defined, the stack
boundary can be momentarily unaligned while pushing the arguments.
Record the delta since last aligned boundary here in order to get
stack alignment in the nested function calls working right.
The documentation for this struct was generated from the following file: