From: Jim Wilson Date: Sat, 17 Mar 2001 02:56:23 +0000 (+0000) Subject: Fix glibc dl-sysdeps.c abort from Jes Sorensen. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0c35f90252437cc70dcfff7f3b742a59e749451d;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87e40c117a3..6a81bc113c8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-03-16 Jim Wilson + + * 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 * gccbug.in: Remove high priority. diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 1a5d55119e9..8f74bdc95c3 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)