ns32k.md: Revert Jan 9 change.
authorHans-Peter Nilsson <hp@axis.com>
Thu, 13 Jan 2000 10:19:39 +0000 (10:19 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Thu, 13 Jan 2000 10:19:39 +0000 (10:19 +0000)
* config/ns32k/ns32k.md: Revert Jan 9 change.

* genrecog.c (maybe_both_true_2): Do not compare a predicate-test
to a mode-test, if the predicate is address_operand.

From-SVN: r31384

gcc/ChangeLog
gcc/config/ns32k/ns32k.md
gcc/genrecog.c

index c5471bc..0a6a8a6 100644 (file)
@@ -1,3 +1,10 @@
+Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/ns32k/ns32k.md: Revert Jan 9 change.
+
+       * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
+       to a mode-test, if the predicate is address_operand.
+
 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
 
        * combine.c (if_then_else_cond): Be careful about what kinds
index d8378e3..7f411d3 100644 (file)
 
 (define_insn ""
   [(set (match_operand:SI 0 "general_operand" "=g<")
-       (match_operand:SI 1 "address_operand" "p"))]
+       (match_operand:QI 1 "address_operand" "p"))]
   ""
   "*
 {
index ce5f910..eb973fd 100644 (file)
@@ -1,5 +1,5 @@
 /* Generate code from machine description to recognize rtl as insns.
-   Copyright (C) 1987, 88, 92-95, 97-98, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1987, 88, 92-95, 97-99, 2000 Free Software Foundation, Inc.
 
    This file is part of GNU CC.
 
@@ -1012,7 +1012,12 @@ maybe_both_true_2 (d1, d2)
        {
          if (d2->type == DT_mode)
            {
-             if (d1->u.pred.mode != d2->u.mode)
+             if (d1->u.pred.mode != d2->u.mode
+                 /* The mode of an address_operand predicate is the
+                    mode of the memory, not the operand.  It can only
+                    be used for testing the predicate, so we must
+                    ignore it here.  */
+                 && strcmp (d1->u.pred.name, "address_operand") != 0)
                return 0;
            }
          /* Don't check two predicate modes here, because if both predicates