]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
predicates.md (move_src_operand): Allow zero for mode.
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Wed, 28 Feb 2007 00:11:14 +0000 (00:11 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Wed, 28 Feb 2007 00:11:14 +0000 (00:11 +0000)
* pa/predicates.md (move_src_operand): Allow zero for mode.
* pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
move pattern.

From-SVN: r122388

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

index dc5a8d14d623eb77ed39f348a1c6bd571f20783b..888ac2e61941a6171b929a3cb2537816852d673b 100644 (file)
@@ -1,3 +1,9 @@
+2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa/predicates.md (move_src_operand): Allow zero for mode.
+       * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
+       move pattern.
+
 2007-02-27  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/30970
index 720bf15012236d8426e253a238131a1293d9aa55..54335c347160c973f01f4c003bea94c057e76f41 100644 (file)
   [(set (match_operand:DF 0 "move_dest_operand"
                          "=!*r,*r,*r,*r,*r,Q,f,f,T")
        (match_operand:DF 1 "move_src_operand"
-                         "!*r,J,N,K,RQ,*rM,fM,RT,f"))]
+                         "!*r,J,N,K,RQ,*rG,fG,RT,f"))]
   "(register_operand (operands[0], DFmode)
     || reg_or_0_operand (operands[1], DFmode))
    && !TARGET_SOFT_FLOAT && TARGET_64BIT"
index 685a4941991f7c594e528460f191ff3e3d07001a..ff9ebacf1c907a92ea9f8cb2b0dd544d1295b2e5 100644 (file)
 ;; instruction.
 
 (define_predicate "move_src_operand"
-  (match_code "subreg,reg,const_int,mem")
+  (match_code "subreg,reg,const_int,const_double,mem")
 {
   if (register_operand (op, mode))
     return 1;
 
+  if (op == CONST0_RTX (mode))
+    return 1;
+
   if (GET_CODE (op) == CONST_INT)
     return cint_ok_for_move (INTVAL (op));