diff options
author | Jim Wilson <wilson@redhat.com> | 2001-03-17 02:56:23 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2001-03-16 18:56:23 -0800 |
commit | 0c35f90252437cc70dcfff7f3b742a59e749451d (patch) | |
tree | 488ccc860c58dc52d45aa0da0ff4021a40d60cf0 | |
parent | de5e27beba15d7c7e48d22314b2b077bcebc299a (diff) | |
download | gcc-0c35f90252437cc70dcfff7f3b742a59e749451d.zip gcc-0c35f90252437cc70dcfff7f3b742a59e749451d.tar.gz gcc-0c35f90252437cc70dcfff7f3b742a59e749451d.tar.bz2 |
Fix glibc dl-sysdeps.c abort from Jes Sorensen.
* config/ia64/ia64.c (ia64_compute_frame_size): If reg_fp is zero,
then set it to LOC_REG (79) instead of aborting.
From-SVN: r40569
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87e40c1..6a81bc1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-03-16 Jim Wilson <wilson@redhat.com> + + * config/ia64/ia64.c (ia64_compute_frame_size): If reg_fp is zero, + then set it to LOC_REG (79) instead of aborting. + 2001-03-16 Phil Edwards <pme@sources.redhat.com> * gccbug.in: Remove high priority. diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 1a5d551..8f74bdc 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -1390,10 +1390,15 @@ ia64_compute_frame_size (size) if (frame_pointer_needed) { current_frame_info.reg_fp = find_gr_spill (1); - /* We should have gotten at least LOC79, since that's what - HARD_FRAME_POINTER_REGNUM is. */ + /* If we did not get a register, then we take LOC79. This is guaranteed + to be free, even if regs_ever_live is already set, because this is + HARD_FRAME_POINTER_REGNUM. This requires incrementing n_local_regs, + as we don't count loc79 above. */ if (current_frame_info.reg_fp == 0) - abort (); + { + current_frame_info.reg_fp = LOC_REG (79); + current_frame_info.n_local_regs++; + } } if (! current_function_is_leaf) |