Commit 4e430df8 by Richard Kenner

(expand_divmod): Don't make REG_NOTE if last insn's destination isn't

QUOTIENT.

From-SVN: r7798
parent ad2e7dd0
...@@ -2568,7 +2568,7 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) ...@@ -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,6 +2813,9 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) ...@@ -2813,6 +2813,9 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp)
} }
insn = get_last_insn (); insn = get_last_insn ();
if (insn != last
&& (set = single_set (insn)) != 0
&& SET_DEST (set) == quotient)
REG_NOTES (insn) REG_NOTES (insn)
= gen_rtx (EXPR_LIST, REG_EQUAL, = gen_rtx (EXPR_LIST, REG_EQUAL,
gen_rtx (UDIV, compute_mode, op0, op1), gen_rtx (UDIV, compute_mode, op0, op1),
...@@ -2878,6 +2881,9 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) ...@@ -2878,6 +2881,9 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp)
if (d < 0) if (d < 0)
{ {
insn = get_last_insn (); insn = get_last_insn ();
if (insn != last
&& (set = single_set (insn)) != 0
&& SET_DEST (set) == quotient)
REG_NOTES (insn) REG_NOTES (insn)
= gen_rtx (EXPR_LIST, REG_EQUAL, = gen_rtx (EXPR_LIST, REG_EQUAL,
gen_rtx (DIV, compute_mode, op0, gen_rtx (DIV, compute_mode, op0,
...@@ -2935,15 +2941,15 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) ...@@ -2935,15 +2941,15 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp)
} }
} }
if (quotient != 0)
{
insn = get_last_insn (); insn = get_last_insn ();
if (insn != last
&& (set = single_set (insn)) != 0
&& SET_DEST (set) == quotient)
REG_NOTES (insn) REG_NOTES (insn)
= gen_rtx (EXPR_LIST, REG_EQUAL, = gen_rtx (EXPR_LIST, REG_EQUAL,
gen_rtx (DIV, compute_mode, op0, op1), gen_rtx (DIV, compute_mode, op0, op1),
REG_NOTES (insn)); REG_NOTES (insn));
} }
}
break; break;
} }
fail1: fail1:
......
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