rs6000.md (*movdi_internal64): Add a new constraint.
authorGuozhi Wei <carrot@google.com>
Fri, 8 Aug 2014 23:00:28 +0000 (23:00 +0000)
committerWei Guozhi <carrot@gcc.gnu.org>
Fri, 8 Aug 2014 23:00:28 +0000 (23:00 +0000)
* config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.

From-SVN: r213767

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index 4be17717d74f028516b870d9e92a4cddc6716f88..0bb62f743270821fa41cf8280076ffda656fde3e 100644 (file)
@@ -1,3 +1,7 @@
+2014-08-08  Guozhi Wei  <carrot@google.com>
+
+       * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
+
 2014-08-08  Cary Coutant  <ccoutant@google.com>
 
        * dwarf2out.c (get_skeleton_type_unit): Remove.
index a577d356296bfa0b62e26acf9ccfe5a8a99fc878..48694842f540251062153abceeff9c0b16140b38 100644 (file)
 { rs6000_split_multireg_move (operands[0], operands[1]); DONE; })
 
 (define_insn "*movdi_internal64"
-  [(set (match_operand:DI 0 "nonimmediate_operand" "=Y,r,r,r,r,r,?m,?*d,?*d,r,*h,*h,r,?*wg,r,?*wm")
-       (match_operand:DI 1 "input_operand" "r,Y,r,I,L,nF,d,m,d,*h,r,0,*wg,r,*wm,r"))]
+  [(set (match_operand:DI 0 "nonimmediate_operand" "=Y,r,r,r,r,r,?m,?*d,?*d,r,*h,*h,r,?*wg,r,?*wm,?*wm")
+       (match_operand:DI 1 "input_operand" "r,Y,r,I,L,nF,d,m,d,*h,r,0,*wg,r,*wm,r,O"))]
   "TARGET_POWERPC64
    && (gpc_reg_operand (operands[0], DImode)
        || gpc_reg_operand (operands[1], DImode))"
    mftgpr %0,%1
    mffgpr %0,%1
    mfvsrd %0,%x1
-   mtvsrd %x0,%1"
-  [(set_attr "type" "store,load,*,*,*,*,fpstore,fpload,fp,mfjmpr,mtjmpr,*,mftgpr,mffgpr,mftgpr,mffgpr")
-   (set_attr "length" "4,4,4,4,4,20,4,4,4,4,4,4,4,4,4,4")])
+   mtvsrd %x0,%1
+   xxlxor %x0,%x0,%x0"
+  [(set_attr "type" "store,load,*,*,*,*,fpstore,fpload,fp,mfjmpr,mtjmpr,*,mftgpr,mffgpr,mftgpr,mffgpr,vecsimple")
+   (set_attr "length" "4,4,4,4,4,20,4,4,4,4,4,4,4,4,4,4,4")])
 
 ;; Generate all one-bits and clear left or right.
 ;; Use (and:DI (rotate:DI ...)) to avoid anddi3 unnecessary clobber.