From: Jim Wilson Date: Wed, 2 Sep 1998 14:49:17 +0000 (+0000) Subject: Fix miscompilation of MIPS cross assembler on sparc host. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8127f74f22ffa61b0beb0e15c1edcb6c4a96d29e;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 81d164c87ef..415830a157b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 2 14:47:36 1998 Jim Wilson + + * 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. diff --git a/gcc/jump.c b/gcc/jump.c index befd7071077..77c3556a8b7 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -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),