This is the mail archive of the gcc-bugs@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]

Re: xgcc failure, 970929 on i586-linux, target mips64-elf


>>>>> Jim Wilson <wilson@cygnus.com> writes:

> Perhaps we should fix init_reg_modes in regclass.c to use reg_raw_mode[i-1]
> instead of word_mode.  The choice of word_mode is somewhat arbitrary, so
> using something else equally arbitrary shouldn't make any real difference
> to the rest of the compiler, and this change would allow the dwarf2 EH
> support to work.

Sounds good to me.

Thu Oct  2 23:15:20 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* regclass.c (init_reg_modes): If we can't find a mode for the 
	register, use the previous one.

Index: regclass.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gcc/regclass.c,v
retrieving revision 1.47
diff -c -r1.47 regclass.c
*** regclass.c	1997/09/06 18:51:02	1.47
--- regclass.c	1997/10/03 06:18:05
***************
*** 415,428 ****
      {
        reg_raw_mode[i] = choose_hard_reg_mode (i, 1);
  
!       /* If we couldn't find a valid mode, fall back to `word_mode'.
! 	 ??? We assume `word_mode' has already been initialized.
           ??? One situation in which we need to do this is on the mips where
  	 HARD_REGNO_NREGS (fpreg, [SD]Fmode) returns 2.  Ideally we'd like
  	 to use DF mode for the even registers and VOIDmode for the odd
  	 (for the cpu models where the odd ones are inaccessible).  */
        if (reg_raw_mode[i] == VOIDmode)
! 	reg_raw_mode[i] = word_mode;
      }
  }
  
--- 415,427 ----
      {
        reg_raw_mode[i] = choose_hard_reg_mode (i, 1);
  
!       /* If we couldn't find a valid mode, just use the previous mode.
           ??? One situation in which we need to do this is on the mips where
  	 HARD_REGNO_NREGS (fpreg, [SD]Fmode) returns 2.  Ideally we'd like
  	 to use DF mode for the even registers and VOIDmode for the odd
  	 (for the cpu models where the odd ones are inaccessible).  */
        if (reg_raw_mode[i] == VOIDmode)
! 	reg_raw_mode[i] = reg_raw_mode[i-1];
      }
  }
  


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