diff options
author | Richard Henderson <rth@cygnus.com> | 1998-08-16 19:04:53 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1998-08-16 19:04:53 -0700 |
commit | 29f63881da0f971b44a89144d0a81088b51f72bf (patch) | |
tree | fb3b230b55bbbbf764342c91cbe29e3e6f9ffaf8 | |
parent | 295cd2ee03be57dc52bd19b3bf760c50f9467b2f (diff) | |
download | gcc-29f63881da0f971b44a89144d0a81088b51f72bf.zip gcc-29f63881da0f971b44a89144d0a81088b51f72bf.tar.gz gcc-29f63881da0f971b44a89144d0a81088b51f72bf.tar.bz2 |
* regclass.c (allocate_reg_info): Respect MIN when clearing data.
From-SVN: r21770
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/regclass.c | 13 |
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 68164b6..cc9cd63 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Mon Aug 17 02:03:55 1998 Richard Henderson <rth@cygnus.com> + + * regclass.c (allocate_reg_info): Respect MIN when clearing data. + Sun Aug 16 17:37:06 1998 David S. Miller <davem@pierdol.cobaltmicro.com> * config/sparc/sparc.c (ultra_code_from_mask, diff --git a/gcc/regclass.c b/gcc/regclass.c index 256d92b..40bdc72 100644 --- a/gcc/regclass.c +++ b/gcc/regclass.c @@ -1866,18 +1866,19 @@ allocate_reg_info (num_regs, new_p, renumber_p) size_t max_index = reg_data->max_index; reg_next = reg_data->next; - if (min_index <= regno_allocated) + if (min <= max_index) { size_t max = max_index; - if (max > regno_allocated) - max = regno_allocated; + size_t local_min = min - min_index; + if (min < min_index) + local_min = 0; if (!reg_data->used_p) /* page just allocated with calloc */ reg_data->used_p = 1; /* no need to zero */ else - bzero ((char *) ®_data->data, - sizeof (reg_info) * (max - min_index + 1)); + bzero ((char *) ®_data->data[local_min], + sizeof (reg_info) * (max - min_index - local_min + 1)); - for (i = min_index; i <= max; i++) + for (i = min_index+local_min; i <= max; i++) { VARRAY_REG (reg_n_info, i) = ®_data->data[i-min_index]; REG_BASIC_BLOCK (i) = REG_BLOCK_UNKNOWN; |