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]

combine bugfix



The m68k port aborts during bootstrapping because we did a combination into
a call insn which had a REG_EH_REGION note.

Such notes need to stay attached to their call.


	* combine.c (distribute_notes): Handle REG_EH_REGION notes.

Index: combine.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/combine.c,v
retrieving revision 1.58
diff -c -3 -p -r1.58 combine.c
*** combine.c	1999/01/27 01:41:57	1.58
--- combine.c	1999/01/31 02:11:25
*************** distribute_notes (notes, from_insn, i3, 
*** 11431,11436 ****
--- 11431,11447 ----
  	  place = i3;
  	  break;
  
+ 	case REG_EH_REGION:
+ 	  /* This note must remain with the call.  It should not be possible
+ 	     for both I2 and I3 to be a call.  */
+ 	  if (GET_CODE (i3) == CALL_INSN) 
+ 	    place = i3;
+ 	  else if (i2 && GET_CODE (i2) == CALL_INSN)
+ 	    place = i2;
+ 	  else
+ 	    abort ();
+ 	  break;
+ 
  	case REG_UNUSED:
  	  /* Any clobbers for i3 may still exist, and so we must process
  	     REG_UNUSED notes from that insn.


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