2005-10-19 Paolo Bonzini <bonzini@gnu.org>
PR #19672
* dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR
like TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR, if the branch cost
is low enough.
From-SVN: r105608
+2005-10-19 Paolo Bonzini <bonzini@gnu.org>
+
+ PR #19672
+ * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR
+ like TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR, if the branch cost
+ is low enough.
+
2005-10-09 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label);
break;
+ case TRUTH_AND_EXPR:
+ if (BRANCH_COST >= 4)
+ goto normal;
+
+ /* Else fall through to TRUTH_ANDIF_EXPR. */
+
case TRUTH_ANDIF_EXPR:
if (if_false_label == 0)
if_false_label = drop_through_label = gen_label_rtx ();
end_cleanup_deferral ();
break;
+ case TRUTH_OR_EXPR:
+ if (BRANCH_COST >= 4)
+ goto normal;
+
+ /* Else fall through to TRUTH_ORIF_EXPR. */
+
case TRUTH_ORIF_EXPR:
if (if_true_label == 0)
if_true_label = drop_through_label = gen_label_rtx ();