This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
combine bugfix
- To: egcs-patches at cygnus dot com
- Subject: combine bugfix
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Sat, 30 Jan 1999 19:14:21 -0700
- Reply-To: law at cygnus dot com
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.