This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: xgcc failure, 970929 on i586-linux, target mips64-elf
- To: Jim Wilson <wilson at cygnus dot com>
- Subject: Re: xgcc failure, 970929 on i586-linux, target mips64-elf
- From: Jason Merrill <jason at cygnus dot com>
- Date: 02 Oct 1997 23:19:37 -0700
- Cc: Paul Koning <pkoning at xedia dot com>, egcs-bugs at cygnus dot com
- References: <199710030407.VAA17032@cygnus.com>
>>>>> 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];
}
}