mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-09 03:00:27 +08:00
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:
parent
ae00112bf0
commit
567075ed31
@ -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
|
||||
|
10
gcc/ifcvt.c
10
gcc/ifcvt.c
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user