dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through to NE_EXPR case.
authorDavid Edelsohn <edelsohn@gnu.org>
Mon, 9 May 2005 14:43:09 +0000 (14:43 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Mon, 9 May 2005 14:43:09 +0000 (10:43 -0400)
* dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
to NE_EXPR case.

From-SVN: r99443

gcc/ChangeLog
gcc/dojump.c

index 3453669456f8a5c55e2e01ee99f45a1b0f7eb6e8..b309737c09528c1d5e06edf7459f8c7a1413a3c8 100644 (file)
@@ -1,3 +1,8 @@
+2005-05-09  David Edelsohn  <edelsohn@gnu.org>
+
+       * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
+       to NE_EXPR case.
+
 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/ia64/ia64.c: Fix a comment typo.
index c274a6ecff4a7772c9ac3e215e13388e1254230d..87efb170f2613eb990ca966385d7d950a7548e23 100644 (file)
@@ -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));