(gcc.info) Caller Saves
Info Catalog
(gcc.info) Aggregate Return
(gcc.info) Stack and Calling
(gcc.info) Function Entry
Caller-Saves Register Allocation
--------------------------------
If you enable it, GNU CC can save registers around function calls.
This makes it possible to use call-clobbered registers to hold
variables that must live across calls.
`DEFAULT_CALLER_SAVES'
Define this macro if function calls on the target machine do not
preserve any registers; in other words, if `CALL_USED_REGISTERS'
has 1 for all registers. When defined, this macro enables
`-fcaller-saves' by default for all optimization levels. It has
no effect for optimization levels 2 and higher, where
`-fcaller-saves' is the default.
`CALLER_SAVE_PROFITABLE (REFS, CALLS)'
A C expression to determine whether it is worthwhile to consider
placing a pseudo-register in a call-clobbered hard register and
saving and restoring it around each function call. The expression
should be 1 when this is worth doing, and 0 otherwise.
If you don't define this macro, a default is used which is good on
most machines: `4 * CALLS < REFS'.
`HARD_REGNO_CALLER_SAVE_MODE (REGNO, NREGS)'
A C expression specifying which mode is required for saving NREGS
of a pseudo-register in call-clobbered hard register REGNO. If
REGNO is unsuitable for caller save, `VOIDmode' should be
returned. For most machines this macro need not be defined since
GCC will select the smallest suitable mode.
Info Catalog
(gcc.info) Aggregate Return
(gcc.info) Stack and Calling
(gcc.info) Function Entry
automatically generated byinfo2html