This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

expand_builtin_init_dwarf_reg_sizes and test failures



Jason --
 
  I'm seeing a bunch of new test failures on i686-pc-linux, all
involving exception handling.  On poking around, I see that
expand_builtin_init_dwarf_reg_sizes changed on 2000-07-14, but there
doesn't seem to be any ChangeLog entry.  

  The problem was that we were not writing more information that there
is space in the table; dwarf_reg_size_table contains only
DWARF_FRAME_REGISTERS slots, but we were trying to write
FIRST_PSEUDO_REGISTER entries.  I'm bootstrapping with the attached
patch, which seemed to cure the problem, but I'm a little unclear on
what's going on here.  I'll go ahead and check this in if a) it works,
and b) I don't hear otherwise, but you should definitely review for
sanity.

  My confusion was increased by the fact that DWARF_FRAME_REGISTERS is
not documented in the TeXinfo documentation; would you mind updating
it, since you can probably write the best documentation for it?

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

Index: dwarf2out.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/dwarf2out.c,v
retrieving revision 1.184
diff -c -p -r1.184 dwarf2out.c
*** dwarf2out.c	2000/07/14 17:40:38	1.184
--- dwarf2out.c	2000/07/16 19:46:38
*************** expand_builtin_init_dwarf_reg_sizes (add
*** 626,632 ****
    rtx addr = expand_expr (address, NULL_RTX, VOIDmode, 0);
    rtx mem = gen_rtx_MEM (mode, addr);
  
!   i = MAX (FIRST_PSEUDO_REGISTER, DWARF_FRAME_REGISTERS);
    while (i--)
      {
        int offset = DWARF_FRAME_REGNUM (i) * GET_MODE_SIZE (mode);
--- 626,632 ----
    rtx addr = expand_expr (address, NULL_RTX, VOIDmode, 0);
    rtx mem = gen_rtx_MEM (mode, addr);
  
!   i = MIN (FIRST_PSEUDO_REGISTER, DWARF_FRAME_REGISTERS);
    while (i--)
      {
        int offset = DWARF_FRAME_REGNUM (i) * GET_MODE_SIZE (mode);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]