aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hayes <michaelh@ongaonga.chch.cri.nz>1998-08-19 12:49:17 +0000
committerJeff Law <law@gcc.gnu.org>1998-08-19 06:49:17 -0600
commit252f342a37a49c09dc2c292e02f3c4697b76318c (patch)
tree085d8dd273e87ba7b2b283349e0e05c7148ad427
parentbdd6b6020c56612cc139e2e02d204e43d23921e1 (diff)
downloadgcc-252f342a37a49c09dc2c292e02f3c4697b76318c.zip
gcc-252f342a37a49c09dc2c292e02f3c4697b76318c.tar.gz
gcc-252f342a37a49c09dc2c292e02f3c4697b76318c.tar.bz2
regclass.c: Changed register set documentation to be consistent with GCC behaviour.
* regclass.c: Changed register set documentation to be consistent with GCC behaviour. * final.c (final_start_function) Removed redundant test for call_fixed_regs. From-SVN: r21847
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/final.c2
-rw-r--r--gcc/regclass.c12
3 files changed, 15 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 31bd3d1..ef587f6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+1998-08-19 Michael Hayes <michaelh@ongaonga.chch.cri.nz>
+
+ * regclass.c: Changed register set documentation to be consistent
+ with GCC behaviour.
+
+ * final.c (final_start_function) Removed redundant test for
+ call_fixed_regs.
+
Wed Aug 19 13:28:41 1998 Mark Mitchell <mark@markmitchell.com>
* rtl.h (rtx_function): New type.
diff --git a/gcc/final.c b/gcc/final.c
index e6a1d53..621f61f 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1597,7 +1597,7 @@ final_start_function (first, file, optimize)
int i;
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
- if (!call_used_regs[i] && !call_fixed_regs[i])
+ if (!call_used_regs[i])
regs_ever_live[i] = 1;
}
#endif
diff --git a/gcc/regclass.c b/gcc/regclass.c
index 40bdc72..293b7c3 100644
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -56,7 +56,7 @@ Boston, MA 02111-1307, USA. */
/* Indexed by hard register number, contains 1 for registers
that are fixed use (stack pointer, pc, frame pointer, etc.).
These are the registers that cannot be used to allocate
- a pseudo reg whose life does not cross calls. */
+ a pseudo reg for general use. */
char fixed_regs[FIRST_PSEUDO_REGISTER];
@@ -71,7 +71,8 @@ static char initial_fixed_regs[] = FIXED_REGISTERS;
/* Indexed by hard register number, contains 1 for registers
that are fixed use or are clobbered by function calls.
These are the registers that cannot be used to allocate
- a pseudo reg whose life crosses calls. */
+ a pseudo reg whose life crosses calls unless we are able
+ to save/restore them across the calls. */
char call_used_regs[FIRST_PSEUDO_REGISTER];
@@ -87,10 +88,9 @@ HARD_REG_SET losing_caller_save_reg_set;
static char initial_call_used_regs[] = CALL_USED_REGISTERS;
/* Indexed by hard register number, contains 1 for registers that are
- fixed use -- i.e. in fixed_regs -- or a function value return register
- or STRUCT_VALUE_REGNUM or STATIC_CHAIN_REGNUM. These are the
- registers that cannot hold quantities across calls even if we are
- willing to save and restore them. */
+ fixed use or call used registers that cannot hold quantities across
+ calls even if we are willing to save and restore them. call fixed
+ registers are a subset of call used registers. */
char call_fixed_regs[FIRST_PSEUDO_REGISTER];