re PR target/21716 (ICE in reg-stack.c's swap_rtx_condition)

PR target/21716
	* reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
	found in the basic block and last insn in the basic block is not
	INSN_P.  Remove explicit unspec numbers that are no longer valid
	from comments.

From-SVN: r100196
This commit is contained in:
Jakub Jelinek 2005-05-26 10:07:30 +02:00 committed by Jakub Jelinek
parent 598b20248f
commit 383898f765
2 changed files with 17 additions and 5 deletions

View File

@ -1,3 +1,11 @@
2005-05-26 Jakub Jelinek <jakub@redhat.com>
PR target/21716
* reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
found in the basic block and last insn in the basic block is not
INSN_P. Remove explicit unspec numbers that are no longer valid
from comments.
2005-05-26 Paolo Bonzini <bonzini@gnu.org>
* tree-vect-transform.c (vectorizable_operation): Try word_mode

View File

@ -1231,9 +1231,9 @@ swap_rtx_condition (rtx insn)
pat = PATTERN (insn);
}
/* See if this is, or ends in, a fnstsw, aka unspec 9. If so, we're
not doing anything with the cc value right now. We may be able to
search for one though. */
/* See if this is, or ends in, a fnstsw. If so, we're not doing anything
with the cc value right now. We may be able to search for one
though. */
if (GET_CODE (pat) == SET
&& GET_CODE (SET_SRC (pat)) == UNSPEC
@ -1252,9 +1252,13 @@ swap_rtx_condition (rtx insn)
return 0;
}
/* We haven't found it. */
if (insn == BB_END (current_block))
return 0;
/* So we've found the insn using this value. If it is anything
other than sahf, aka unspec 10, or the value does not die
(meaning we'd have to search further), then we must give up. */
other than sahf or the value does not die (meaning we'd have
to search further), then we must give up. */
pat = PATTERN (insn);
if (GET_CODE (pat) != SET
|| GET_CODE (SET_SRC (pat)) != UNSPEC