From: Jeffrey A Law Date: Sun, 14 Feb 1999 22:39:22 +0000 (+0000) Subject: regclass.c (allocate_reg_info): Respect MIN when clearing data. X-Git-Tag: prereleases/egcs-1.1.2-prerelease-1~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a461ed20cabf0b6d80c5ca2388782d677153dab;p=thirdparty%2Fgcc.git regclass.c (allocate_reg_info): Respect MIN when clearing data. Mon Aug 17 02:03:55 1998 Richard Henderson * regclass.c (allocate_reg_info): Respect MIN when clearing data. From-SVN: r25207 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a6e7d386fa3a..9d7affa09776 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Sun Feb 14 23:05:34 1999 Jeffrey A Law (law@cygnus.com) + Mon Aug 17 02:03:55 1998 Richard Henderson + * regclass.c (allocate_reg_info): Respect MIN when clearing data. + * loop.c (scan_loop): Fix typo in last change. Sat Feb 13 11:53:12 1999 Jeffrey A Law (law@cygnus.com) diff --git a/gcc/regclass.c b/gcc/regclass.c index 3cad5aa54b14..25cac8f282fd 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;