Commit f351bfed by Aldy Hernandez Committed by Aldy Hernandez

* regrename.c (kill_value): Handle subreg's that won't simplify.

From-SVN: r93200
parent eb701deb
2005-01-11 Aldy Hernandez <aldyh@redhat.com>
* regrename.c (kill_value): Handle subreg's that won't simplify.
2005-01-11 Richard Henderson <rth@redhat.com>
PR target/13366
......
......@@ -1104,14 +1104,15 @@ kill_value_regno (unsigned int regno, unsigned int nregs,
static void
kill_value (rtx x, struct value_data *vd)
{
/* SUBREGS are supposed to have been eliminated by now. But some
ports, e.g. i386 sse, use them to smuggle vector type information
through to instruction selection. Each such SUBREG should simplify,
so if we get a NULL we've done something wrong elsewhere. */
rtx orig_rtx = x;
if (GET_CODE (x) == SUBREG)
x = simplify_subreg (GET_MODE (x), SUBREG_REG (x),
GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x));
{
x = simplify_subreg (GET_MODE (x), SUBREG_REG (x),
GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x));
if (x == NULL_RTX)
x = SUBREG_REG (orig_rtx);
}
if (REG_P (x))
{
unsigned int regno = REGNO (x);
......
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