Commit 4df62c77 by Michael Matz Committed by Michael Matz

expr.h (jumpifnot_1, [...]): Declare.

        * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
        * dojump.c (do_jump_by_parts_greater): Take two operands instead of
        full expression.
        (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
        (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
        (do_jump): Split out code for simple binary comparisons into ...
        (do_jump_1): ... this, taking the individual operands and code.
        Change callers to helper function above accordingly.
        * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
        comparisons.

From-SVN: r151080
parent 8e7aa1f9
2009-08-25 Michael Matz <matz@suse.de> 2009-08-25 Michael Matz <matz@suse.de>
* expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
* dojump.c (do_jump_by_parts_greater): Take two operands instead of
full expression.
(do_jump_by_parts_equality, do_compare_and_jump): Ditto.
(jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
(do_jump): Split out code for simple binary comparisons into ...
(do_jump_1): ... this, taking the individual operands and code.
Change callers to helper function above accordingly.
* expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
comparisons.
2009-08-25 Michael Matz <matz@suse.de>
* expr.h (struct separate_ops, sepops): New type for passing * expr.h (struct separate_ops, sepops): New type for passing
around an exploded simple expression. around an exploded simple expression.
* optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr): * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
......
...@@ -8194,7 +8194,6 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, ...@@ -8194,7 +8194,6 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
modifier); modifier);
result = copy_rtx (result); result = copy_rtx (result);
/* BLA */
set_mem_attributes (result, exp, 0); set_mem_attributes (result, exp, 0);
return result; return result;
} }
...@@ -9169,8 +9168,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, ...@@ -9169,8 +9168,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
emit_move_insn (target, const0_rtx); emit_move_insn (target, const0_rtx);
op1 = gen_label_rtx (); op1 = gen_label_rtx ();
/* BLA */ jumpifnot_1 (code, treeop0, treeop1, op1);
jumpifnot (exp, op1);
if (target) if (target)
emit_move_insn (target, const1_rtx); emit_move_insn (target, const1_rtx);
......
...@@ -579,13 +579,16 @@ extern tree string_constant (tree, tree *); ...@@ -579,13 +579,16 @@ extern tree string_constant (tree, tree *);
/* Generate code to evaluate EXP and jump to LABEL if the value is zero. */ /* Generate code to evaluate EXP and jump to LABEL if the value is zero. */
extern void jumpifnot (tree, rtx); extern void jumpifnot (tree, rtx);
extern void jumpifnot_1 (enum tree_code, tree, tree, rtx);
/* Generate code to evaluate EXP and jump to LABEL if the value is nonzero. */ /* Generate code to evaluate EXP and jump to LABEL if the value is nonzero. */
extern void jumpif (tree, rtx); extern void jumpif (tree, rtx);
extern void jumpif_1 (enum tree_code, tree, tree, rtx);
/* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if /* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if
the result is zero, or IF_TRUE_LABEL if the result is one. */ the result is zero, or IF_TRUE_LABEL if the result is one. */
extern void do_jump (tree, rtx, rtx); extern void do_jump (tree, rtx, rtx);
extern void do_jump_1 (enum tree_code, tree, tree, rtx, rtx);
extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int, extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int,
enum machine_mode, rtx, rtx, rtx); enum machine_mode, rtx, rtx, rtx);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment