Fix miscompilation of MIPS cross assembler on sparc host.

* jump.c (jump_optimize): In if/then/else transformations, add
	another call to modified_between_p for the jump insn.

From-SVN: r22187
This commit is contained in:
Jim Wilson 1998-09-02 14:49:17 +00:00 committed by Jim Wilson
parent f0da48d27d
commit 8127f74f22
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,8 @@
Wed Sep 2 14:47:36 1998 Jim Wilson <wilson@cygnus.com>
* jump.c (jump_optimize): In if/then/else transformations, add
another call to modified_between_p for the jump insn.
Wed Sep 2 14:16:49 1998 Jeffrey A Law (law@cygnus.com)
* fix-header.c (symlink): Treat like readlink.

View File

@ -855,7 +855,11 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan)
&& ! reg_referenced_between_p (temp1, p, NEXT_INSN (temp3))
&& ! reg_set_between_p (temp1, p, temp3)
&& (GET_CODE (SET_SRC (temp4)) == CONST_INT
|| ! modified_between_p (SET_SRC (temp4), p, temp2)))
|| ! modified_between_p (SET_SRC (temp4), p, temp2))
/* Verify that registers used by the jump are not clobbered
by the instruction being moved. */
&& ! modified_between_p (PATTERN (temp), temp2,
NEXT_INSN (temp2)))
{
emit_insn_after_with_line_notes (PATTERN (temp2), p, temp2);
delete_insn (temp2);
@ -953,6 +957,10 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan)
NEXT_INSN (temp2))
&& ! reg_set_between_p (temp1, insert_after, temp)
&& ! modified_between_p (SET_SRC (temp4), insert_after, temp)
/* Verify that registers used by the jump are not clobbered
by the instruction being moved. */
&& ! modified_between_p (PATTERN (temp), temp3,
NEXT_INSN (temp3))
&& invert_jump (temp, JUMP_LABEL (insn)))
{
emit_insn_after_with_line_notes (PATTERN (temp3),