This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
fix ia64 epilogue generation
- From: Richard Henderson <rth at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: schwab at suse dot de
- Date: Mon, 31 Dec 2001 16:29:11 -0800
- Subject: fix ia64 epilogue generation
Should fix the problem Andreas mentions here:
http://gcc.gnu.org/ml/gcc/2001-12/msg01409.html
r~
* config/ia64/ia64.c (mark_reg_gr_used_mask): Mind HARD_REGNO_NREGS.
Index: gcc/config/ia64/ia64.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.c,v
retrieving revision 1.134
diff -c -p -d -r1.134 ia64.c
*** ia64.c 2001/12/19 22:09:03 1.134
--- ia64.c 2002/01/01 00:22:03
*************** mark_reg_gr_used_mask (reg, data)
*** 1377,1383 ****
{
unsigned int regno = REGNO (reg);
if (regno < 32)
! current_frame_info.gr_used_mask |= 1 << regno;
}
/* Returns the number of bytes offset between the frame pointer and the stack
--- 1377,1387 ----
{
unsigned int regno = REGNO (reg);
if (regno < 32)
! {
! unsigned int i, n = HARD_REGNO_NREGS (regno, GET_MODE (reg));
! for (i = 0; i < n; ++i)
! current_frame_info.gr_used_mask |= 1 << (regno + i);
! }
}
/* Returns the number of bytes offset between the frame pointer and the stack