OSDN Git Service

* pa/predicates.md (move_src_operand): Allow zero for mode.
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Feb 2007 00:11:14 +0000 (00:11 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Feb 2007 00:11:14 +0000 (00:11 +0000)
* pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
move pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122388 138bc75d-0d04-0410-961f-82ee72b054a4

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

index dc5a8d1..888ac2e 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 720bf15..54335c3 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 685a494..ff9ebac 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));