(expand_divmod): Don't make REG_NOTE if last insn's destination isn't
QUOTIENT. From-SVN: r7798
This commit is contained in:
parent
ad2e7dd004
commit
4e430df869
42
gcc/expmed.c
42
gcc/expmed.c
@ -2568,7 +2568,7 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp)
|
|||||||
rtx quotient = 0, remainder = 0;
|
rtx quotient = 0, remainder = 0;
|
||||||
rtx last;
|
rtx last;
|
||||||
int size;
|
int size;
|
||||||
rtx insn;
|
rtx insn, set;
|
||||||
optab optab1, optab2;
|
optab optab1, optab2;
|
||||||
int op1_is_constant, op1_is_pow2;
|
int op1_is_constant, op1_is_pow2;
|
||||||
|
|
||||||
@ -2813,10 +2813,13 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
insn = get_last_insn ();
|
insn = get_last_insn ();
|
||||||
REG_NOTES (insn)
|
if (insn != last
|
||||||
= gen_rtx (EXPR_LIST, REG_EQUAL,
|
&& (set = single_set (insn)) != 0
|
||||||
gen_rtx (UDIV, compute_mode, op0, op1),
|
&& SET_DEST (set) == quotient)
|
||||||
REG_NOTES (insn));
|
REG_NOTES (insn)
|
||||||
|
= gen_rtx (EXPR_LIST, REG_EQUAL,
|
||||||
|
gen_rtx (UDIV, compute_mode, op0, op1),
|
||||||
|
REG_NOTES (insn));
|
||||||
}
|
}
|
||||||
else /* TRUNC_DIV, signed */
|
else /* TRUNC_DIV, signed */
|
||||||
{
|
{
|
||||||
@ -2878,11 +2881,14 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp)
|
|||||||
if (d < 0)
|
if (d < 0)
|
||||||
{
|
{
|
||||||
insn = get_last_insn ();
|
insn = get_last_insn ();
|
||||||
REG_NOTES (insn)
|
if (insn != last
|
||||||
= gen_rtx (EXPR_LIST, REG_EQUAL,
|
&& (set = single_set (insn)) != 0
|
||||||
gen_rtx (DIV, compute_mode, op0,
|
&& SET_DEST (set) == quotient)
|
||||||
GEN_INT (abs_d)),
|
REG_NOTES (insn)
|
||||||
REG_NOTES (insn));
|
= gen_rtx (EXPR_LIST, REG_EQUAL,
|
||||||
|
gen_rtx (DIV, compute_mode, op0,
|
||||||
|
GEN_INT (abs_d)),
|
||||||
|
REG_NOTES (insn));
|
||||||
|
|
||||||
quotient = expand_unop (compute_mode, neg_optab,
|
quotient = expand_unop (compute_mode, neg_optab,
|
||||||
quotient, quotient, 0);
|
quotient, quotient, 0);
|
||||||
@ -2935,14 +2941,14 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (quotient != 0)
|
insn = get_last_insn ();
|
||||||
{
|
if (insn != last
|
||||||
insn = get_last_insn ();
|
&& (set = single_set (insn)) != 0
|
||||||
REG_NOTES (insn)
|
&& SET_DEST (set) == quotient)
|
||||||
= gen_rtx (EXPR_LIST, REG_EQUAL,
|
REG_NOTES (insn)
|
||||||
gen_rtx (DIV, compute_mode, op0, op1),
|
= gen_rtx (EXPR_LIST, REG_EQUAL,
|
||||||
REG_NOTES (insn));
|
gen_rtx (DIV, compute_mode, op0, op1),
|
||||||
}
|
REG_NOTES (insn));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user