This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

Re: Unrepresentable subregs and hard_regno_nregs


On Thu, 21 Dec 2006, Ian Lance Taylor wrote:

> "Joseph S. Myers" <joseph@codesourcery.com> writes:
>
> > 2006-12-21  Joseph Myers  <joseph@codesourcery.com>
> >
> > 	* rtlanal.c (subreg_get_info): Do not make register size
> > 	computations for mode sizes not divisible by the number of
> > 	registers.
>
> This is OK if it passes testing.
> Thanks.
> Ian

I'm getting a bootstrap failure on sparc-sun-solaris2.10 building libjava
with current mainline:

.../libjava/classpath/native/fdlibm/strtod.c: In function '_Jv_strtod_r':
.../libjava/classpath/native/fdlibm/strtod.c:718: internal compiler error: Segmentation Fault

Program received signal SIGSEGV, Segmentation fault.
0x003a30d4 in subreg_nregs (x=0xff0fc840) at ../../egcc-SVN20061226/gcc/rtlanal.c:3153
3153      subreg_get_info (regno, GET_MODE (subreg), SUBREG_BYTE (x), GET_MODE (x),
(gdb) where
#0  0x003a30d4 in subreg_nregs (x=0xff0fc840) at ../../egcc-SVN20061226/gcc/rtlanal.c:3153
#1  0x004d48d8 in add_stored_regs (reg=0xff0fc840, setter=0xfec19f30, data=0x7b286c)
    at ../../egcc-SVN20061226/gcc/caller-save.c:548
#2  0x0039d158 in note_stores (x=0xfec19f30, fun=0x4d4810 <add_stored_regs>, data=0x7b286c)
    at ../../egcc-SVN20061226/gcc/rtlanal.c:1381
#3  0x004d4540 in insert_one_insn (chain=0x7ae4d8, before_p=0, code=50, pat=0xfec6a090)
    at ../../egcc-SVN20061226/gcc/caller-save.c:858

(gdb) list
3148    {
3149      struct subreg_info info;
3150      rtx subreg = SUBREG_REG (x);
3151      int regno = REGNO (subreg);
3152
3153      subreg_get_info (regno, GET_MODE (subreg), SUBREG_BYTE (x), GET_MODE (x),
3154                       &info);
3155      return info.nregs;
3156    }
3157
(gdb) p subreg
$3 = (rtx) 0x16

Compiler flags are:
cc1 -fpreprocessed strtod.i -mptr64 -mstack-bias -mno-v8plus -mcpu=v9
-quiet -dumpbase strtod.c -m64 -m64 -auxbase-strip .libs/strtod.o -g
-O2 -version -fPIC -o strtod.s

And I've attached the .i file.  Let me know if you need anything else.

		Regards,
		--Kaveh
--
Kaveh R. Ghazi			ghazi@caip.rutgers.edu

Attachment: strtod.i.gz
Description: Binary data


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