genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
authorPaolo Bonzini <bonzini@gnu.org>
Wed, 23 Feb 2005 09:09:17 +0000 (09:09 +0000)
committerPaolo Bonzini <bonzini@gcc.gnu.org>
Wed, 23 Feb 2005 09:09:17 +0000 (09:09 +0000)
2005-02-23  Paolo Bonzini  <bonzini@gnu.org>

* genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
(write_predicate_expr): Likewise.

From-SVN: r95447

gcc/ChangeLog
gcc/genpreds.c

index ee37f3eeda89a47613445728c71c69fe1198a6ad..fb6c31763cab09cc2c8fdbeda26f5f87a8131374 100644 (file)
@@ -1,3 +1,8 @@
+2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
+
+       * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
+       (write_predicate_expr): Likewise.
+
 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
 
        PR tree-optimization/20100
index 874925de998bebea4df423a6d43a13310802929c..cb22908fb567a7ce89373be9452491985c58965e 100644 (file)
@@ -167,7 +167,7 @@ mark_mode_tests (rtx exp)
        struct pred_data *p = lookup_predicate (XSTR (exp, 1));
        if (!p)
          error ("reference to undefined predicate '%s'", XSTR (exp, 1));
-       else if (p->special)
+       else if (p->special || GET_MODE (exp) != VOIDmode)
          NO_MODE_TEST (exp) = 1;
       }
       break;
@@ -366,7 +366,10 @@ write_predicate_expr (const char *name, rtx exp)
       break;
 
     case MATCH_OPERAND:
-      printf ("%s (op, mode)", XSTR (exp, 1));
+      if (GET_MODE (exp) == VOIDmode)
+        printf ("%s (op, mode)", XSTR (exp, 1));
+      else
+        printf ("%s (op, %smode)", XSTR (exp, 1), mode_name[GET_MODE (exp)]);
       break;
 
     case MATCH_CODE: