mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-12 01:25:18 +08:00
regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
* regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro. * caller-save.c (init_caller_save): Use it. * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE. From-SVN: r22682
This commit is contained in:
parent
5ae4c799f2
commit
8d5c8167c9
@ -1,4 +1,10 @@
|
||||
Wed Sep 30 12:57:30 1998Zack Weinberg <zack@rabi.phys.columbia.edu>
|
||||
Wed Sep 30 18:19:27 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
|
||||
|
||||
* regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
|
||||
* caller-save.c (init_caller_save): Use it.
|
||||
* tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
|
||||
|
||||
Wed Sep 30 12:57:30 1998 Zack Weinberg <zack@rabi.phys.columbia.edu>
|
||||
|
||||
* configure.in: Add --enable-cpplib option which uses cpplib
|
||||
for cpp, but doesn't link cpplib into cc1. Make help text
|
||||
|
@ -115,7 +115,7 @@ init_caller_save ()
|
||||
{
|
||||
for (j = 1; j <= MOVE_MAX / UNITS_PER_WORD; j++)
|
||||
{
|
||||
regno_save_mode[i][j] = choose_hard_reg_mode (i, j);
|
||||
regno_save_mode[i][j] = HARD_REGNO_CALLER_SAVE_MODE (i, j);
|
||||
if (regno_save_mode[i][j] == VOIDmode && j == 1)
|
||||
{
|
||||
call_fixed_regs[i] = 1;
|
||||
|
@ -211,6 +211,12 @@ extern int caller_save_needed;
|
||||
#define CLASS_LIKELY_SPILLED_P(CLASS) (reg_class_size[(int) (CLASS)] == 1)
|
||||
#endif
|
||||
|
||||
/* Select a register mode required for caller save of hard regno REGNO. */
|
||||
#ifndef HARD_REGNO_CALLER_SAVE_MODE
|
||||
#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS) \
|
||||
choose_hard_reg_mode (REGNO, NREGS)
|
||||
#endif
|
||||
|
||||
/* Allocated in local_alloc. */
|
||||
|
||||
/* A list of SCRATCH rtl allocated by local-alloc. */
|
||||
|
@ -3174,6 +3174,14 @@ this is worth doing, and 0 otherwise.
|
||||
|
||||
If you don't define this macro, a default is used which is good on most
|
||||
machines: @code{4 * @var{calls} < @var{refs}}.
|
||||
|
||||
@findex HARD_REGNO_CALLER_SAVE_MODE
|
||||
@item HARD_REGNO_CALLER_SAVE_MODE (@var{regno}, @var{nregs})
|
||||
A C expression specifying which mode is required for saving @var{nregs}
|
||||
of a pseudo-register in call-clobbered hard register @var{regno}. If
|
||||
@var{regno} is unsuitable for caller save, @code{VOIDmode} should be
|
||||
returned. For most machines this macro need not be defined since GCC
|
||||
will select the smallest suitable mode.
|
||||
@end table
|
||||
|
||||
@node Function Entry
|
||||
|
Loading…
Reference in New Issue
Block a user