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]

Re: c/2840: HP-UX: ICEs with -march=1.0 in gcc 3.0 prerelease


  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.
  



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