OSDN Git Service

2008-12-09 Andreas Krebbel <krebbel1@de.ibm.com>
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Dec 2008 09:05:06 +0000 (09:05 +0000)
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Dec 2008 09:05:06 +0000 (09:05 +0000)
* config/s390/s390.md (movti, movdi_64, movdi_31,
  *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
  *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
  Q->Q alternative.
  (Integer->BLKmode splitter): Removed.

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

gcc/ChangeLog
gcc/config/s390/s390.md

index fe7ef41..b1a6993 100644 (file)
@@ -1,3 +1,11 @@
+2008-12-09  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.md (movti, movdi_64, movdi_31,
+         *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
+         *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
+         Q->Q alternative.
+         (Integer->BLKmode splitter): Removed.
+
 2008-12-08  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/alpha/alpha.c (alpha_set_memflags): Process memory
index 2598039..1691fdb 100644 (file)
 ;
 
 (define_insn "movti"
-  [(set (match_operand:TI 0 "nonimmediate_operand" "=d,QS,d,o,Q")
-        (match_operand:TI 1 "general_operand" "QS,d,dPRT,d,Q"))]
+  [(set (match_operand:TI 0 "nonimmediate_operand" "=d,QS,d,o")
+        (match_operand:TI 1 "general_operand" "QS,d,dPRT,d"))]
   "TARGET_64BIT"
   "@
    lmg\t%0,%N0,%S1
    stmg\t%1,%N1,%S0
    #
-   #
    #"
-  [(set_attr "op_type" "RSY,RSY,*,*,SS")
-   (set_attr "type" "lm,stm,*,*,*")])
+  [(set_attr "op_type" "RSY,RSY,*,*")
+   (set_attr "type" "lm,stm,*,*")])
 
 (define_split
   [(set (match_operand:TI 0 "nonimmediate_operand" "")
 (define_insn "*movdi_64"
   [(set (match_operand:DI 0 "nonimmediate_operand"
                             "=d,d,d,d,d,d,d,d,f,d,d,d,d,d,
-                             RT,!*f,!*f,!*f,!R,!T,b,Q,d,t,Q,t,?Q")
+                             RT,!*f,!*f,!*f,!R,!T,b,Q,d,t,Q,t")
         (match_operand:DI 1 "general_operand"
                             "K,N0HD0,N1HD0,N2HD0,N3HD0,Os,N0SD0,N1SD0,d,f,L,b,d,RT,
-                             d,*f,R,T,*f,*f,d,K,t,d,t,Q,?Q"))]
+                             d,*f,R,T,*f,*f,d,K,t,d,t,Q"))]
   "TARGET_64BIT"
   "@
    lghi\t%0,%h1
    #
    #
    stam\t%1,%N1,%S0
-   lam\t%0,%N0,%S1
-   #"
+   lam\t%0,%N0,%S1"
   [(set_attr "op_type" "RI,RI,RI,RI,RI,RIL,RIL,RIL,RRE,RRE,RXY,RIL,RRE,RXY,
-                        RXY,RR,RX,RXY,RX,RXY,RIL,SIL,*,*,RS,RS,SS")
+                        RXY,RR,RX,RXY,RX,RXY,RIL,SIL,*,*,RS,RS")
    (set_attr "type" "*,*,*,*,*,*,*,*,floaddf,floaddf,la,larl,lr,load,store,
                      floaddf,floaddf,floaddf,fstoredf,fstoredf,larl,*,*,*,
-                     *,*,*")
+                     *,*")
    (set_attr "cpu_facility" "*,*,*,*,*,extimm,extimm,extimm,dfp,dfp,longdisp,
                              z10,*,*,*,*,*,longdisp,*,longdisp,
-                             z10,z10,*,*,*,*,*")
+                             z10,z10,*,*,*,*")
    (set_attr "z10prop" "z10_fwd_A1,
                         z10_fwd_E1,
                         z10_fwd_E1,
                         *,
                         *,
                         *,
-                        *,
                         *")
 ])
 
 
 (define_insn "*movdi_31"
   [(set (match_operand:DI 0 "nonimmediate_operand"
-                            "=d,d,Q,S,d   ,o,!*f,!*f,!*f,!R,!T,Q,d")
+                            "=d,d,Q,S,d   ,o,!*f,!*f,!*f,!R,!T,d")
         (match_operand:DI 1 "general_operand"
-                            " Q,S,d,d,dPRT,d, *f,  R,  T,*f,*f,Q,b"))]
+                            " Q,S,d,d,dPRT,d, *f,  R,  T,*f,*f,b"))]
   "!TARGET_64BIT"
   "@
    lm\t%0,%N0,%S1
    ldy\t%0,%1
    std\t%1,%0
    stdy\t%1,%0
-   #
    #"
-  [(set_attr "op_type" "RS,RSY,RS,RSY,*,*,RR,RX,RXY,RX,RXY,SS,*")
-   (set_attr "type" "lm,lm,stm,stm,*,*,floaddf,floaddf,floaddf,fstoredf,fstoredf,*,*")
-   (set_attr "cpu_facility" "*,*,*,*,*,*,*,*,*,*,*,*,z10")])
+  [(set_attr "op_type" "RS,RSY,RS,RSY,*,*,RR,RX,RXY,RX,RXY,*")
+   (set_attr "type" "lm,lm,stm,stm,*,*,floaddf,floaddf,floaddf,fstoredf,fstoredf,*")
+   (set_attr "cpu_facility" "*,*,*,*,*,*,*,*,*,*,*,z10")])
 
 ; For a load from a symbol ref we can use one of the target registers
 ; together with larl to load the address.
 
 (define_insn "*movsi_zarch"
   [(set (match_operand:SI 0 "nonimmediate_operand"
-                           "=d,d,d,d,d,d,d,d,d,R,T,!*f,!*f,!*f,!R,!T,d,t,Q,b,Q,t,?Q")
+                           "=d,d,d,d,d,d,d,d,d,R,T,!*f,!*f,!*f,!R,!T,d,t,Q,b,Q,t")
         (match_operand:SI 1 "general_operand"
-                           "K,N0HS0,N1HS0,Os,L,b,d,R,T,d,d,*f,R,T,*f,*f,t,d,t,d,K,Q,?Q"))]
+                           "K,N0HS0,N1HS0,Os,L,b,d,R,T,d,d,*f,R,T,*f,*f,t,d,t,d,K,Q"))]
   "TARGET_ZARCH"
   "@
    lhi\t%0,%h1
    stam\t%1,%1,%S0
    strl\t%1,%0
    mvhi\t%0,%1
-   lam\t%0,%0,%S1
-   #"
+   lam\t%0,%0,%S1"
   [(set_attr "op_type" "RI,RI,RI,RIL,RXY,RIL,RR,RX,RXY,RX,RXY,
-                        RR,RX,RXY,RX,RXY,RRE,RRE,RS,RIL,SIL,RS,SS")
+                        RR,RX,RXY,RX,RXY,RRE,RRE,RS,RIL,SIL,RS")
    (set_attr "type" "*,
                      *,
                      *,
                      *,
                      larl,
                      *,
-                     *,
                      *")
    (set_attr "cpu_facility" "*,*,*,extimm,longdisp,z10,*,*,longdisp,*,longdisp,
-                             *,*,longdisp,*,longdisp,*,*,*,z10,z10,*,*")
+                             *,*,longdisp,*,longdisp,*,*,*,z10,z10,*")
    (set_attr "z10prop" "z10_fwd_A1,
                         z10_fwd_E1,
                         z10_fwd_E1,
                         *,
                         z10_rec,
                         z10_super,
-                        *,
                         *")])
 
 (define_insn "*movsi_esa"
-  [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,d,R,!*f,!*f,!R,d,t,Q,t,?Q")
-        (match_operand:SI 1 "general_operand" "K,d,R,d,*f,R,*f,t,d,t,Q,?Q"))]
+  [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,d,R,!*f,!*f,!R,d,t,Q,t")
+        (match_operand:SI 1 "general_operand" "K,d,R,d,*f,R,*f,t,d,t,Q"))]
   "!TARGET_ZARCH"
   "@
    lhi\t%0,%h1
    ear\t%0,%1
    sar\t%0,%1
    stam\t%1,%1,%S0
-   lam\t%0,%0,%S1
-   #"
-  [(set_attr "op_type" "RI,RR,RX,RX,RR,RX,RX,RRE,RRE,RS,RS,SS")
-   (set_attr "type" "*,lr,load,store,floadsf,floadsf,fstoresf,*,*,*,*,*")
+   lam\t%0,%0,%S1"
+  [(set_attr "op_type" "RI,RR,RX,RX,RR,RX,RX,RRE,RRE,RS,RS")
+   (set_attr "type" "*,lr,load,store,floadsf,floadsf,fstoresf,*,*,*,*")
    (set_attr "z10prop" "z10_fwd_A1,
                         z10_fr_E1,
                         z10_fwd_A3,
                         z10_super_E1,
                         z10_super,
                         *,
-                        *,
                         *")
 ])
 
 })
 
 (define_insn "*movhi"
-  [(set (match_operand:HI 0 "nonimmediate_operand" "=d,d,d,d,d,R,T,b,Q,?Q")
-        (match_operand:HI 1 "general_operand"      " d,n,R,T,b,d,d,d,K,?Q"))]
+  [(set (match_operand:HI 0 "nonimmediate_operand" "=d,d,d,d,d,R,T,b,Q")
+        (match_operand:HI 1 "general_operand"      " d,n,R,T,b,d,d,d,K"))]
   ""
   "@
    lr\t%0,%1
    sth\t%1,%0
    sthy\t%1,%0
    sthrl\t%1,%0
-   mvhhi\t%0,%1
-   #"
-  [(set_attr "op_type"      "RR,RI,RX,RXY,RIL,RX,RXY,RIL,SIL,SS")
-   (set_attr "type"         "lr,*,*,*,larl,store,store,store,*,*")
-   (set_attr "cpu_facility" "*,*,*,*,z10,*,*,z10,z10,*")
+   mvhhi\t%0,%1"
+  [(set_attr "op_type"      "RR,RI,RX,RXY,RIL,RX,RXY,RIL,SIL")
+   (set_attr "type"         "lr,*,*,*,larl,store,store,store,*")
+   (set_attr "cpu_facility" "*,*,*,*,z10,*,*,z10,z10")
    (set_attr "z10prop" "z10_fr_E1,
                        z10_fwd_A1,
                        z10_super_E1,
                        z10_super,
                        z10_rec,
                        z10_rec,
-                       z10_super,
-                       *")])
+                       z10_super")])
 
 (define_peephole2
   [(set (match_operand:HI 0 "register_operand" "")
 })
 
 (define_insn "*movqi"
-  [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,d,R,T,Q,S,?Q")
-        (match_operand:QI 1 "general_operand" "d,n,R,T,d,d,n,n,?Q"))]
+  [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,d,R,T,Q,S")
+        (match_operand:QI 1 "general_operand" "d,n,R,T,d,d,n,n"))]
   ""
   "@
    lr\t%0,%1
    stc\t%1,%0
    stcy\t%1,%0
    mvi\t%S0,%b1
-   mviy\t%S0,%b1
-   #"
-  [(set_attr "op_type" "RR,RI,RX,RXY,RX,RXY,SI,SIY,SS")
-   (set_attr "type" "lr,*,*,*,store,store,store,store,*")
+   mviy\t%S0,%b1"
+  [(set_attr "op_type" "RR,RI,RX,RXY,RX,RXY,SI,SIY")
+   (set_attr "type" "lr,*,*,*,store,store,store,store")
    (set_attr "z10prop" "z10_fr_E1,
                         z10_fwd_A1,
                         z10_super_E1,
                         z10_super,
                         z10_rec,
                         z10_super,
-                        z10_super,
-                        *")])
+                        z10_super")])
 
 (define_peephole2
   [(set (match_operand:QI 0 "nonimmediate_operand" "")
   "")
 
 (define_insn "*mov<mode>_64"
-  [(set (match_operand:TD_TF 0 "nonimmediate_operand" "=f,f,f,o, d,QS, d,o,Q")
-        (match_operand:TD_TF 1 "general_operand"      " G,f,o,f,QS, d,dRT,d,Q"))]
+  [(set (match_operand:TD_TF 0 "nonimmediate_operand" "=f,f,f,o, d,QS,  d,o")
+        (match_operand:TD_TF 1 "general_operand"      " G,f,o,f,QS, d,dRT,d"))]
   "TARGET_64BIT"
   "@
    lzxr\t%0
    lmg\t%0,%N0,%S1
    stmg\t%1,%N1,%S0
    #
-   #
    #"
-  [(set_attr "op_type" "RRE,RRE,*,*,RSY,RSY,*,*,*")
-   (set_attr "type"    "fsimptf,fsimptf,*,*,lm,stm,*,*,*")])
+  [(set_attr "op_type" "RRE,RRE,*,*,RSY,RSY,*,*")
+   (set_attr "type"    "fsimptf,fsimptf,*,*,lm,stm,*,*")])
 
 (define_insn "*mov<mode>_31"
-  [(set (match_operand:TD_TF 0 "nonimmediate_operand" "=f,f,f,o,Q")
-        (match_operand:TD_TF 1 "general_operand"      " G,f,o,f,Q"))]
+  [(set (match_operand:TD_TF 0 "nonimmediate_operand" "=f,f,f,o")
+        (match_operand:TD_TF 1 "general_operand"      " G,f,o,f"))]
   "!TARGET_64BIT"
   "@
    lzxr\t%0
    lxr\t%0,%1
    #
-   #
    #"
-  [(set_attr "op_type" "RRE,RRE,*,*,*")
-   (set_attr "type"    "fsimptf,fsimptf,*,*,*")])
+  [(set_attr "op_type" "RRE,RRE,*,*")
+   (set_attr "type"    "fsimptf,fsimptf,*,*")])
 
 ; TFmode in GPRs splitters
 
 
 (define_insn "*mov<mode>_64dfp"
   [(set (match_operand:DD_DF 0 "nonimmediate_operand"
-                              "=f,f,f,d,f,f,R,T,d,d,RT,?Q")
+                              "=f,f,f,d,f,f,R,T,d, d,RT")
         (match_operand:DD_DF 1 "general_operand"
-                              "G,f,d,f,R,T,f,f,d,RT,d,?Q"))]
+                              " G,f,d,f,R,T,f,f,d,RT, d"))]
   "TARGET_64BIT && TARGET_DFP"
   "@
    lzdr\t%0
    stdy\t%1,%0
    lgr\t%0,%1
    lg\t%0,%1
-   stg\t%1,%0
-   #"
-  [(set_attr "op_type" "RRE,RR,RRE,RRE,RX,RXY,RX,RXY,RRE,RXY,RXY,SS")
+   stg\t%1,%0"
+  [(set_attr "op_type" "RRE,RR,RRE,RRE,RX,RXY,RX,RXY,RRE,RXY,RXY")
    (set_attr "type" "fsimpdf,floaddf,floaddf,floaddf,floaddf,floaddf,
-                     fstoredf,fstoredf,lr,load,store,*")
+                     fstoredf,fstoredf,lr,load,store")
    (set_attr "z10prop" "*,
                         *,
                         *,
                         *,
                         z10_fr_E1,
                         z10_fwd_A3,
-                        z10_rec,
-                        *")
+                        z10_rec")
 ])
 
 (define_insn "*mov<mode>_64"
-  [(set (match_operand:DD_DF 0 "nonimmediate_operand" "=f,f,f,f,R,T,d, d,RT,?Q")
-        (match_operand:DD_DF 1 "general_operand"       "G,f,R,T,f,f,d,RT, d,?Q"))]
+  [(set (match_operand:DD_DF 0 "nonimmediate_operand" "=f,f,f,f,R,T,d, d,RT")
+        (match_operand:DD_DF 1 "general_operand"       "G,f,R,T,f,f,d,RT, d"))]
   "TARGET_64BIT"
   "@
    lzdr\t%0
    stdy\t%1,%0
    lgr\t%0,%1
    lg\t%0,%1
-   stg\t%1,%0
-   #"
-  [(set_attr "op_type" "RRE,RR,RX,RXY,RX,RXY,RRE,RXY,RXY,SS")
+   stg\t%1,%0"
+  [(set_attr "op_type" "RRE,RR,RX,RXY,RX,RXY,RRE,RXY,RXY")
    (set_attr "type" "fsimp<mode>,fload<mode>,fload<mode>,fload<mode>,
-                     fstore<mode>,fstore<mode>,lr,load,store,*")
+                     fstore<mode>,fstore<mode>,lr,load,store")
    (set_attr "z10prop" "*,
                         *,
                         *,
                         *,
                         z10_fr_E1,
                         z10_fwd_A3,
-                        z10_rec,
-                        *")])
+                        z10_rec")])
 
 (define_insn "*mov<mode>_31"
   [(set (match_operand:DD_DF 0 "nonimmediate_operand"
-                               "=f,f,f,f,R,T,d,d,Q,S,   d,o,Q")
+                               "=f,f,f,f,R,T,d,d,Q,S,   d,o")
         (match_operand:DD_DF 1 "general_operand"
-                               " G,f,R,T,f,f,Q,S,d,d,dPRT,d,Q"))]
+                               " G,f,R,T,f,f,Q,S,d,d,dPRT,d"))]
   "!TARGET_64BIT"
   "@
    lzdr\t%0
    stm\t%1,%N1,%S0
    stmy\t%1,%N1,%S0
    #
-   #
    #"
-  [(set_attr "op_type" "RRE,RR,RX,RXY,RX,RXY,RS,RSY,RS,RSY,*,*,SS")
+  [(set_attr "op_type" "RRE,RR,RX,RXY,RX,RXY,RS,RSY,RS,RSY,*,*")
    (set_attr "type" "fsimp<mode>,fload<mode>,fload<mode>,fload<mode>,
-                     fstore<mode>,fstore<mode>,lm,lm,stm,stm,*,*,*")])
+                     fstore<mode>,fstore<mode>,lm,lm,stm,stm,*,*")])
 
 (define_split
   [(set (match_operand:DD_DF 0 "nonimmediate_operand" "")
 
 (define_insn "mov<mode>"
   [(set (match_operand:SD_SF 0 "nonimmediate_operand"
-                              "=f,f,f,f,R,T,d,d,d,R,T,?Q")
+                              "=f,f,f,f,R,T,d,d,d,R,T")
         (match_operand:SD_SF 1 "general_operand"
-                              " G,f,R,T,f,f,d,R,T,d,d,?Q"))]
+                              " G,f,R,T,f,f,d,R,T,d,d"))]
   ""
   "@
    lzer\t%0
    l\t%0,%1
    ly\t%0,%1
    st\t%1,%0
-   sty\t%1,%0
-   #"
-  [(set_attr "op_type" "RRE,RR,RX,RXY,RX,RXY,RR,RX,RXY,RX,RXY,SS")
+   sty\t%1,%0"
+  [(set_attr "op_type" "RRE,RR,RX,RXY,RX,RXY,RR,RX,RXY,RX,RXY")
    (set_attr "type" "fsimp<mode>,fload<mode>,fload<mode>,fload<mode>,
-                     fstore<mode>,fstore<mode>,lr,load,load,store,store,*")
+                     fstore<mode>,fstore<mode>,lr,load,load,store,store")
    (set_attr "z10prop" "*,
                         *,
                         *,
                         z10_fwd_A3,
                         z10_fwd_A3,
                         z10_super,
-                        z10_rec,
-                        *")])
+                        z10_rec")])
 
 ;
 ; movcc instruction pattern
   "mvc\t%O0(%2,%R0),%S1"
   [(set_attr "op_type" "SS")])
 
-(define_split
-  [(set (match_operand 0 "memory_operand" "")
-        (match_operand 1 "memory_operand" ""))]
-  "reload_completed
-   && GET_MODE (operands[0]) == GET_MODE (operands[1])
-   && GET_MODE_SIZE (GET_MODE (operands[0])) > 0"
-  [(parallel
-    [(set (match_dup 0) (match_dup 1))
-     (use (match_dup 2))])]
-{
-  operands[2] = GEN_INT (GET_MODE_SIZE (GET_MODE (operands[0])));
-  operands[0] = adjust_address (operands[0], BLKmode, 0);
-  operands[1] = adjust_address (operands[1], BLKmode, 0);
-})
-
 (define_peephole2
   [(parallel
     [(set (match_operand:BLK 0 "memory_operand" "")