Commit 2051c897 by Ulrich Weigand Committed by Ulrich Weigand

combine.c (simplify_set): Do not clear out undobuf.other_insn already set elsewhere.

	* combine.c (simplify_set): Do not clear out undobuf.other_insn
	already set elsewhere.

From-SVN: r72602
parent b1177d69
2003-10-17 Ulrich Weigand <uweigand@de.ibm.com>
* combine.c (simplify_set): Do not clear out undobuf.other_insn
already set elsewhere.
2003-10-17 Kelley Cook <kcook@gcc.gnu.org> 2003-10-17 Kelley Cook <kcook@gcc.gnu.org>
* config/i386/i386.c (ix86_expand_prologue): Use * config/i386/i386.c (ix86_expand_prologue): Use
......
...@@ -5084,10 +5084,12 @@ simplify_set (rtx x) ...@@ -5084,10 +5084,12 @@ simplify_set (rtx x)
undobuf.other_insn. */ undobuf.other_insn. */
if (new_code != old_code) if (new_code != old_code)
{ {
int other_changed_previously = other_changed;
unsigned HOST_WIDE_INT mask; unsigned HOST_WIDE_INT mask;
SUBST (*cc_use, gen_rtx_fmt_ee (new_code, GET_MODE (*cc_use), SUBST (*cc_use, gen_rtx_fmt_ee (new_code, GET_MODE (*cc_use),
dest, const0_rtx)); dest, const0_rtx));
other_changed = 1;
/* If the only change we made was to change an EQ into an NE or /* If the only change we made was to change an EQ into an NE or
vice versa, OP0 has only one bit that might be nonzero, and OP1 vice versa, OP0 has only one bit that might be nonzero, and OP1
...@@ -5097,7 +5099,7 @@ simplify_set (rtx x) ...@@ -5097,7 +5099,7 @@ simplify_set (rtx x)
if (((old_code == NE && new_code == EQ) if (((old_code == NE && new_code == EQ)
|| (old_code == EQ && new_code == NE)) || (old_code == EQ && new_code == NE))
&& ! other_changed && op1 == const0_rtx && ! other_changed_previously && op1 == const0_rtx
&& GET_MODE_BITSIZE (GET_MODE (op0)) <= HOST_BITS_PER_WIDE_INT && GET_MODE_BITSIZE (GET_MODE (op0)) <= HOST_BITS_PER_WIDE_INT
&& exact_log2 (mask = nonzero_bits (op0, GET_MODE (op0))) >= 0) && exact_log2 (mask = nonzero_bits (op0, GET_MODE (op0))) >= 0)
{ {
...@@ -5107,13 +5109,11 @@ simplify_set (rtx x) ...@@ -5107,13 +5109,11 @@ simplify_set (rtx x)
&& ! check_asm_operands (pat))) && ! check_asm_operands (pat)))
{ {
PUT_CODE (*cc_use, old_code); PUT_CODE (*cc_use, old_code);
other_insn = 0; other_changed = 0;
op0 = gen_binary (XOR, GET_MODE (op0), op0, GEN_INT (mask)); op0 = gen_binary (XOR, GET_MODE (op0), op0, GEN_INT (mask));
} }
} }
other_changed = 1;
} }
if (other_changed) if (other_changed)
......
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