ifcvt.c (noce_emit_store_flag): If using condition from original jump, reverse it if if_info->cond was reversed.

* ifcvt.c (noce_emit_store_flag): If using condition from original
	jump, reverse it if if_info->cond was reversed.

From-SVN: r140764
This commit is contained in:
Joseph Myers 2008-09-29 20:31:27 +01:00 committed by Joseph Myers
parent ae00112bf0
commit 567075ed31
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2008-09-29 Joseph Myers <joseph@codesourcery.com>
* ifcvt.c (noce_emit_store_flag): If using condition from original
jump, reverse it if if_info->cond was reversed.
2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
* expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to

View File

@ -666,7 +666,15 @@ noce_emit_store_flag (struct noce_if_info *if_info, rtx x, int reversep,
build the store_flag insn directly. */
if (cond_complex)
cond = XEXP (SET_SRC (pc_set (if_info->jump)), 0);
{
rtx set = pc_set (if_info->jump);
cond = XEXP (SET_SRC (set), 0);
if (GET_CODE (XEXP (SET_SRC (set), 2)) == LABEL_REF
&& XEXP (XEXP (SET_SRC (set), 2), 0) == JUMP_LABEL (if_info->jump))
reversep = !reversep;
if (if_info->then_else_reversed)
reversep = !reversep;
}
if (reversep)
code = reversed_comparison_code (cond, if_info->jump);