diff options
Diffstat (limited to 'contrib/gcc/regs.h')
-rw-r--r-- | contrib/gcc/regs.h | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/contrib/gcc/regs.h b/contrib/gcc/regs.h index 2e838e3..9c9edcc 100644 --- a/contrib/gcc/regs.h +++ b/contrib/gcc/regs.h @@ -1,6 +1,6 @@ /* Define per-register tables for data flow info and register allocation. Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000 Free Software Foundation, Inc. + 1999, 2000, 2003 Free Software Foundation, Inc. This file is part of GCC. @@ -60,7 +60,7 @@ typedef struct reg_info_def int live_length; /* # of instructions (REG n) is live */ int calls_crossed; /* # of calls (REG n) is live across */ int basic_block; /* # of basic blocks (REG n) is used in */ - char changes_mode; /* whether (SUBREG (REG n)) exists and + char changes_mode; /* whether (SUBREG (REG n)) exists and is illegal. */ } reg_info; @@ -76,7 +76,7 @@ extern bitmap_head subregs_of_mode; #define REG_FREQ(N) (VARRAY_REG (reg_n_info, N)->freq) -/* The weights for each insn varries from 0 to REG_FREQ_BASE. +/* The weights for each insn varries from 0 to REG_FREQ_BASE. This constant does not need to be high, as in infrequently executed regions we want to count instructions equivalently to optimize for size instead of speed. */ @@ -153,14 +153,13 @@ extern bitmap_head subregs_of_mode; extern short *reg_renumber; -/* Vector indexed by hardware reg - saying whether that reg is ever used. */ +/* Vector indexed by hardware reg saying whether that reg is ever used. */ extern char regs_ever_live[FIRST_PSEUDO_REGISTER]; -/* Vector indexed by hardware reg giving its name. */ +/* Like regs_ever_live, but saying whether reg is set by asm statements. */ -extern const char * reg_names[FIRST_PSEUDO_REGISTER]; +extern char regs_asm_clobbered[FIRST_PSEUDO_REGISTER]; /* For each hard register, the widest mode object that it can contain. This will be a MODE_INT mode if the register can hold integers. Otherwise @@ -214,14 +213,14 @@ extern int caller_save_needed; /* 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, MODE) \ - choose_hard_reg_mode (REGNO, NREGS) + choose_hard_reg_mode (REGNO, NREGS, false) #endif -/* Registers that get partially clobbered by a call in a given mode. +/* Registers that get partially clobbered by a call in a given mode. These must not be call used registers. */ #ifndef HARD_REGNO_CALL_PART_CLOBBERED #define HARD_REGNO_CALL_PART_CLOBBERED(REGNO, MODE) 0 #endif /* Allocate reg_n_info tables */ -extern void allocate_reg_info PARAMS ((size_t, int, int)); +extern void allocate_reg_info (size_t, int, int); |