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]

IA-64 patch for compiler abort


This fixes a compiler abort that occured while trying to compile PlumHall.
global-alloc tried to put an XFmode value in a general register, but the
movxf_internal pattern does not support that, leading to an abort in reload.

2000-07-19  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
	GR_REGS.

Index: ia64.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/ia64/ia64.h,v
retrieving revision 1.26
diff -p -r1.26 ia64.h
*** ia64.h	2000/07/10 20:51:23	1.26
--- ia64.h	2000/07/19 22:59:41
*************** while (0)
*** 810,819 ****
  /* A C expression that is nonzero if it is permissible to store a value of mode
     MODE in hard register number REGNO (or in several registers starting with
     that one).  */
! /* ??? movxf_internal does not support XFmode values in integer registers.  */
  #define HARD_REGNO_MODE_OK(REGNO, MODE) \
    (FR_REGNO_P (REGNO) ? (MODE) != CCmode				\
     : PR_REGNO_P (REGNO) ? (MODE) == CCmode				\
     : 1)
  
  /* A C expression that is nonzero if it is desirable to choose register
--- 810,820 ----
  /* A C expression that is nonzero if it is permissible to store a value of mode
     MODE in hard register number REGNO (or in several registers starting with
     that one).  */
! 
  #define HARD_REGNO_MODE_OK(REGNO, MODE) \
    (FR_REGNO_P (REGNO) ? (MODE) != CCmode				\
     : PR_REGNO_P (REGNO) ? (MODE) == CCmode				\
+    : GR_REGNO_P (REGNO) ? (MODE) != XFmode				\
     : 1)
  
  /* A C expression that is nonzero if it is desirable to choose register

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