From mboxrd@z Thu Jan 1 00:00:00 1970 From: law@redhat.com To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: c/2840: HP-UX: ICEs with -march=1.0 in gcc 3.0 prerelease Date: Wed, 16 May 2001 12:56:00 -0000 Message-id: <20010516195600.20284.qmail@sourceware.cygnus.com> X-SW-Source: 2001-05/msg00415.html List-Id: The following reply was made to PR c/2840; it has been noted by GNATS. From: law@redhat.com To: rbrown64@csc.com.au Cc: gcc-gnats@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: c/2840: HP-UX: ICEs with -march=1.0 in gcc 3.0 prerelease Date: Wed, 16 May 2001 12:40:14 -0700 In message < 20010516060847.22952.qmail@sourceware.cygnus.com >you write: > -Running target unix/-march=1.0 > +Running target unix > -FAIL: gcc.c-torture/compile/941019-1.c, -O1 > ... > +PASS: gcc.c-torture/compile/941019-1.c, -O1 I've just checked in the attched fix, which hopefully fixes most/all of these failures. I don't have the resources right now to run a -mpa-risc-1-0 test as my secondary HP machine is in a box in preparation for moving in a couple weeks. So if you could rebuild/retest after updating your sources it would be greatly appreciated. [ The patch was bootstrapped and tested in PA1.1 mode as well as spot checked on a few of the tests in PA1.0 mode. ] I installed this on the branch as well as in the mainline sources. FWIW, PA1.0 and PA1.1 behaved differently because we're more restrictive about what values can go into FP regs for PA1.0. This caused PA1.0 to need a reload that PA1.1 doesn't, and because of HARD_REGNO_MODE_OK, we couldn't find a suitable GPR register for the reload. * pa32-regs.h (HARD_REGNO_MODE_OK): Allow TI/TFmode values in GPRs. Index: pa32-regs.h =================================================================== RCS file: /cvs/gcc/egcs/gcc/config/pa/pa32-regs.h,v retrieving revision 1.5 diff -c -3 -p -r1.5 pa32-regs.h *** pa32-regs.h 2001/01/17 05:23:21 1.5 --- pa32-regs.h 2001/05/16 19:34:44 *************** *** 174,180 **** ? GET_MODE_SIZE (MODE) <= 4 || ((REGNO) & 1) == 0 \ /* Make wide modes be in aligned registers. */ \ : (GET_MODE_SIZE (MODE) <= UNITS_PER_WORD \ ! || (GET_MODE_SIZE (MODE) <= 2 * UNITS_PER_WORD && ((REGNO) & 1) == 0))) /* How to renumber registers for dbx and gdb. --- 174,180 ---- ? GET_MODE_SIZE (MODE) <= 4 || ((REGNO) & 1) == 0 \ /* Make wide modes be in aligned registers. */ \ : (GET_MODE_SIZE (MODE) <= UNITS_PER_WORD \ ! || (GET_MODE_SIZE (MODE) <= 4 * UNITS_PER_WORD && ((REGNO) & 1) == 0))) /* How to renumber registers for dbx and gdb.