From: Andreas Schwab Date: Fri, 19 Apr 96 14:49:39 +0200 Message-Id: <9604191249.AA01009@lamothe.informatik.uni-dortmund.de> To: linux-m68k@phil.uni-sb.de Subject: L68K: [kenner@vlsi1.ultra.nyu.edu (Richard Kenner)] Re: Invalid register allocation X-Yow: I hope the ``Eurythmics'' practice birth control... Sender: owner-linux-m68k@phil.uni-sb.de Reply-To: schwab@issan.informatik.uni-dortmund.de Hi! For those who want to fix the register allocation bug in their compiler, here's the patch that i've received. Andreas. ------- Start of forwarded message ------- From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner) Subject: Re: Invalid register allocation To: schwab Date: Sun, 14 Apr 96 20:49:23 -0400 Sun Apr 14 07:54:19 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) * combine.c (try_combine): When substituting in output of I2, ensure dest isn't clobbered in I2. *** combine.c.old Sun Apr 14 08:16:16 1996 --- combine.c Sun Apr 14 20:35:32 1996 *************** try_combine (i3, i2, i1) *** 1308,1312 **** if another dest in I2 is an indirect memory ref. */ for (i = 0; i < XVECLEN (p2, 0); i++) ! if (GET_CODE (XVECEXP (p2, 0, i)) == SET && reg_overlap_mentioned_p (SET_DEST (PATTERN (i3)), SET_DEST (XVECEXP (p2, 0, i)))) --- 1308,1313 ---- if another dest in I2 is an indirect memory ref. */ for (i = 0; i < XVECLEN (p2, 0); i++) ! if ((GET_CODE (XVECEXP (p2, 0, i)) == SET ! || GET_CODE (XVECEXP (p2, 0, i)) == CLOBBER) && reg_overlap_mentioned_p (SET_DEST (PATTERN (i3)), SET_DEST (XVECEXP (p2, 0, i))))