gcc.info: Caller Saves
Go forward to Function Entry
Go backward to Aggregate Return
Go up to Stack and Calling
Go to the top op gcc
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.
Created Wed Sep 1 16:42:25 2004 on bee with info_to_html version 0.9.6.