]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/19697 (gcc.c-torture/execute/ieee/mzero6.c:24: error: unrecognizable...
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Fri, 11 Feb 2005 23:50:46 +0000 (23:50 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Fri, 11 Feb 2005 23:50:46 +0000 (23:50 +0000)
        PR middle-end/19697
2005-01-30  Roger Sayle  <roger@eyesopen.com>
        * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
        constant as the second operand and a register as the third.

From-SVN: r94903

gcc/ChangeLog
gcc/config/pa/pa.md

index c7398abfccceac3776e3168548eb3da5d4f61185..d9012c192ccfcb4c394d96911de3ecdd9ebbb8cf 100644 (file)
@@ -1,3 +1,10 @@
+2005-02-11  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
+
+        PR middle-end/19697
+       2005-01-30  Roger Sayle  <roger@eyesopen.com>
+        * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
+        constant as the second operand and a register as the third.
+
 2005-01-29  Alan Modra  <amodra@bigpond.net.au>
 
        * unwind-dw2.c (execute_stack_op): Add missing cases for
index 1aace89b20c2d3128c5f3dc055c57b8261fe5866..e01600317101b44866958e35eac97444f7ab4fa9 100644 (file)
 
 (define_expand "anddi3"
   [(set (match_operand:DI 0 "register_operand" "")
-       (and:DI (match_operand:DI 1 "arith_double_operand" "")
+       (and:DI (match_operand:DI 1 "register_operand" "")
                (match_operand:DI 2 "arith_double_operand" "")))]
   ""
   "
 {
-  if (TARGET_64BIT)
-    {
-      /* One operand must be a register operand.  */
-      if (!register_operand (operands[1], DImode)
-         && !register_operand (operands[2], DImode))
-       FAIL;
-    }
-  else
-    {
-      /* Both operands must be register operands.  */
-      if (!register_operand (operands[1], DImode)
-         || !register_operand (operands[2], DImode))
-       FAIL;
-    }
+  /* Both operands must be register operands.  */
+  if (!TARGET_64BIT && !register_operand (operands[2], DImode))
+    FAIL;
 }")
 
 (define_insn ""
 
 (define_expand "iordi3"
   [(set (match_operand:DI 0 "register_operand" "")
-       (ior:DI (match_operand:DI 1 "arith_double_operand" "")
+       (ior:DI (match_operand:DI 1 "register_operand" "")
                (match_operand:DI 2 "arith_double_operand" "")))]
   ""
   "
 {
-  if (! register_operand (operands[1], DImode)
-      || ! register_operand (operands[2], DImode))
-    /* Let GCC break this into word-at-a-time operations.  */
+  /* Both operands must be register operands.  */
+  if (!TARGET_64BIT && !register_operand (operands[2], DImode))
     FAIL;
 }")