From: Richard Henderson Date: Thu, 12 May 2005 23:52:37 +0000 (-0700) Subject: function.c (instantiate_virtual_regs_in_insn): Do not simplify addition to move unles... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9325973e950abdec507306238a253d2c6029a0c6;p=platform%2Fupstream%2Fgcc.git function.c (instantiate_virtual_regs_in_insn): Do not simplify addition to move unless dest is a register. * function.c (instantiate_virtual_regs_in_insn): Do not simplify addition to move unless dest is a register. Do not skip instantiation in dest on addition simplification. From-SVN: r99637 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aec423e..4ad9bb4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-05-13 Richard Henderson + + * function.c (instantiate_virtual_regs_in_insn): Do not simplify + addition to move unless dest is a register. Do not skip + instantiation in dest on addition simplification. + 2005-05-13 Hans-Peter Nilsson * config/cris/cris.c (cris_print_operand) LAST_VIRTUAL_REGISTER) { start_sequence (); emit_move_insn (SET_DEST (set), new); @@ -1400,7 +1403,6 @@ instantiate_virtual_regs_in_insn (rtx insn) } x = gen_int_mode (offset, recog_data.operand_mode[2]); - insn_code = INSN_CODE (insn); /* Using validate_change and apply_change_group here leaves recog_data in an invalid state. Since we know exactly what @@ -1411,15 +1413,17 @@ instantiate_virtual_regs_in_insn (rtx insn) *recog_data.operand_loc[1] = recog_data.operand[1] = new; *recog_data.operand_loc[2] = recog_data.operand[2] = x; any_change = true; - goto verify; + + /* Fall through into the regular operand fixup loop in + order to take care of operands other than 1 and 2. */ } } } else - extract_insn (insn); - - insn_code = INSN_CODE (insn); - any_change = false; + { + extract_insn (insn); + insn_code = INSN_CODE (insn); + } /* In the general case, we expect virtual registers to appear only in operands, and then only as either bare registers or inside memories. */ @@ -1503,7 +1507,6 @@ instantiate_virtual_regs_in_insn (rtx insn) any_change = true; } - verify: if (any_change) { /* Propagate operand changes into the duplicates. */