If you enable it, GCC 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
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)
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)
VOIDmode
should be
returned. For most machines this macro need not be defined since GCC
will select the smallest suitable mode.