summaryrefslogtreecommitdiff
path: root/gcc/dojump.c
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-09 14:43:09 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-09 14:43:09 +0000
commitff9e4fb2f8b04c302a6643a0dfa403e42d63dc93 (patch)
tree28ef4c07c8be640f68d6db700ea610c1e924f11d /gcc/dojump.c
parent594e81b2482129322cf7376a04052a8bbb2902a3 (diff)
downloadgcc-ff9e4fb2f8b04c302a6643a0dfa403e42d63dc93.tar.gz
* dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
to NE_EXPR case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99443 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dojump.c')
-rw-r--r--gcc/dojump.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/gcc/dojump.c b/gcc/dojump.c
index c274a6ecff4..87efb170f26 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -207,14 +207,6 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label)
do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label);
break;
- case MINUS_EXPR:
- /* Nonzero iff operands of minus differ. */
- do_compare_and_jump (build2 (NE_EXPR, TREE_TYPE (exp),
- TREE_OPERAND (exp, 0),
- TREE_OPERAND (exp, 1)),
- NE, NE, if_false_label, if_true_label);
- break;
-
case BIT_AND_EXPR:
/* fold_single_bit_test() converts (X & (1 << C)) into (X >> C) & 1.
See if the former is preferred for jump tests and restore it
@@ -369,6 +361,12 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label)
break;
}
+ case MINUS_EXPR:
+ /* Nonzero iff operands of minus differ. */
+ exp = build2 (NE_EXPR, TREE_TYPE (exp),
+ TREE_OPERAND (exp, 0),
+ TREE_OPERAND (exp, 1));
+ /* FALLTHRU */
case NE_EXPR:
{
tree inner_type = TREE_TYPE (TREE_OPERAND (exp, 0));