Commit ff3467a9 by Jim Wilson Committed by Jim Wilson

Fix alpha-linux GNU libc build failures.

	* combine.c (try_combine): When setting elim_i2, check whether newi2pat
	sets i2dest.  When calling distribute_notes for i3dest_killed, pass
	elim_i2 and elim_i1.  When setting elim_i1, check if newi2pat
	sets i1dest.

From-SVN: r16334
parent f754c4a1
......@@ -6,6 +6,11 @@ Tue Nov 4 18:49:42 1997 Jeffrey A Law (law@cygnus.com)
Tue Nov 4 16:55:11 1997 Jim Wilson <wilson@cygnus.com>
* combine.c (try_combine): When setting elim_i2, check whether newi2pat
sets i2dest. When calling distribute_notes for i3dest_killed, pass
elim_i2 and elim_i1. When setting elim_i1, check if newi2pat
sets i1dest.
* mips.md (insv, extzv, extv): Add change_address call.
(movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern.
......
......@@ -2146,10 +2146,15 @@ try_combine (i3, i2, i1)
rtx i3links, i2links, i1links = 0;
rtx midnotes = 0;
register int regno;
/* Compute which registers we expect to eliminate. */
rtx elim_i2 = (newi2pat || i2dest_in_i2src || i2dest_in_i1src
/* Compute which registers we expect to eliminate. newi2pat may be setting
either i3dest or i2dest, so we must check it. Also, i1dest may be the
same as i3dest, in which case newi2pat may be setting i1dest. */
rtx elim_i2 = ((newi2pat && reg_set_p (i2dest, newi2pat))
|| i2dest_in_i2src || i2dest_in_i1src
? 0 : i2dest);
rtx elim_i1 = i1 == 0 || i1dest_in_i1src ? 0 : i1dest;
rtx elim_i1 = (i1 == 0 || i1dest_in_i1src
|| (newi2pat && reg_set_p (i1dest, newi2pat))
? 0 : i1dest);
/* Get the old REG_NOTES and LOG_LINKS from all our insns and
clear them. */
......@@ -2312,12 +2317,12 @@ try_combine (i3, i2, i1)
if (newi2pat && reg_set_p (i3dest_killed, newi2pat))
distribute_notes (gen_rtx (EXPR_LIST, REG_DEAD, i3dest_killed,
NULL_RTX),
NULL_RTX, i2, NULL_RTX, NULL_RTX, NULL_RTX);
NULL_RTX, i2, NULL_RTX, elim_i2, elim_i1);
else
distribute_notes (gen_rtx (EXPR_LIST, REG_DEAD, i3dest_killed,
NULL_RTX),
NULL_RTX, i3, newi2pat ? i2 : NULL_RTX,
NULL_RTX, NULL_RTX);
elim_i2, elim_i1);
}
if (i2dest_in_i2src)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment