2005-05-13 Adrian Straetling <straetling@de.ibm.com>
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 May 2005 12:21:01 +0000 (12:21 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 May 2005 12:21:01 +0000 (12:21 +0000)
* config/s390.md: ("DBL"): New mode attribute.
("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".

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

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

index 286c65c..00f3607 100644 (file)
@@ -1,3 +1,10 @@
+2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390.md: ("DBL"): New mode attribute.
+       ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
+       ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
+       ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
+
 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
 
        * c-format.c (check_format_arg): Handle string literals of
index d853f8a..93f805e 100644 (file)
 ;; HImode and "llgc" in QImode.
 (define_mode_attr hc [(HI "h") (QI "c")])
 
+;; In P templates, the mode <DBL> will expand to "TI" in DImode and "DI"
+;; in SImode.
+(define_mode_attr DBL [(DI "TI") (SI "DI")])
+
 ;; Maximum unsigned integer that fits in MODE.
 (define_mode_attr max_uint [(HI "65535") (QI "255")])
 
   operands[3] = reg1;
 })
 
-(define_insn "*movmem_long_64"
-  [(clobber (match_operand:TI 0 "register_operand" "=d"))
-   (clobber (match_operand:TI 1 "register_operand" "=d"))
-   (set (mem:BLK (subreg:DI (match_operand:TI 2 "register_operand" "0") 0))
-        (mem:BLK (subreg:DI (match_operand:TI 3 "register_operand" "1") 0)))
-   (use (match_dup 2))
-   (use (match_dup 3))
-   (clobber (reg:CC CC_REGNUM))]
-  "TARGET_64BIT"
-  "mvcle\t%0,%1,0\;jo\t.-4"
-  [(set_attr "length" "8")
-   (set_attr "type" "vs")])
-
-(define_insn "*movmem_long_31"
-  [(clobber (match_operand:DI 0 "register_operand" "=d"))
-   (clobber (match_operand:DI 1 "register_operand" "=d"))
-   (set (mem:BLK (subreg:SI (match_operand:DI 2 "register_operand" "0") 0))
-        (mem:BLK (subreg:SI (match_operand:DI 3 "register_operand" "1") 0)))
+(define_insn "*movmem_long"
+  [(clobber (match_operand:<DBL> 0 "register_operand" "=d"))
+   (clobber (match_operand:<DBL> 1 "register_operand" "=d"))
+   (set (mem:BLK (subreg:P (match_operand:<DBL> 2 "register_operand" "0") 0))
+        (mem:BLK (subreg:P (match_operand:<DBL> 3 "register_operand" "1") 0)))
    (use (match_dup 2))
    (use (match_dup 3))
    (clobber (reg:CC CC_REGNUM))]
-  "!TARGET_64BIT"
+  ""
   "mvcle\t%0,%1,0\;jo\t.-4"
   [(set_attr "length" "8")
    (set_attr "type" "vs")])
   operands[2] = reg1;
 })
 
-(define_insn "*clrmem_long_64"
-  [(clobber (match_operand:TI 0 "register_operand" "=d"))
-   (set (mem:BLK (subreg:DI (match_operand:TI 2 "register_operand" "0") 0))
+(define_insn "*clrmem_long"
+  [(clobber (match_operand:<DBL> 0 "register_operand" "=d"))
+   (set (mem:BLK (subreg:P (match_operand:<DBL> 2 "register_operand" "0") 0))
         (const_int 0))
    (use (match_dup 2))
-   (use (match_operand:TI 1 "register_operand" "d"))
+   (use (match_operand:<DBL> 1 "register_operand" "d"))
    (clobber (reg:CC CC_REGNUM))]
-  "TARGET_64BIT"
-  "mvcle\t%0,%1,0\;jo\t.-4"
-  [(set_attr "length" "8")
-   (set_attr "type" "vs")])
-
-(define_insn "*clrmem_long_31"
-  [(clobber (match_operand:DI 0 "register_operand" "=d"))
-   (set (mem:BLK (subreg:SI (match_operand:DI 2 "register_operand" "0") 0))
-        (const_int 0))
-   (use (match_dup 2))
-   (use (match_operand:DI 1 "register_operand" "d"))
-   (clobber (reg:CC CC_REGNUM))]
-  "!TARGET_64BIT"
+  ""
   "mvcle\t%0,%1,0\;jo\t.-4"
   [(set_attr "length" "8")
    (set_attr "type" "vs")])
   operands[3] = reg1;
 })
 
-(define_insn "*cmpmem_long_64"
-  [(clobber (match_operand:TI 0 "register_operand" "=d"))
-   (clobber (match_operand:TI 1 "register_operand" "=d"))
+(define_insn "*cmpmem_long"
+  [(clobber (match_operand:<DBL> 0 "register_operand" "=d"))
+   (clobber (match_operand:<DBL> 1 "register_operand" "=d"))
    (set (reg:CCU CC_REGNUM)
-        (compare:CCU (mem:BLK (subreg:DI (match_operand:TI 2 "register_operand" "0") 0))
-                     (mem:BLK (subreg:DI (match_operand:TI 3 "register_operand" "1") 0))))
+        (compare:CCU (mem:BLK (subreg:P (match_operand:<DBL> 2 "register_operand" "0") 0))
+                     (mem:BLK (subreg:P (match_operand:<DBL> 3 "register_operand" "1") 0))))
    (use (match_dup 2))
    (use (match_dup 3))]
-  "TARGET_64BIT"
-  "clcle\t%0,%1,0\;jo\t.-4"
-  [(set_attr "length" "8")
-   (set_attr "type" "vs")])
-
-(define_insn "*cmpmem_long_31"
-  [(clobber (match_operand:DI 0 "register_operand" "=d"))
-   (clobber (match_operand:DI 1 "register_operand" "=d"))
-   (set (reg:CCU CC_REGNUM)
-        (compare:CCU (mem:BLK (subreg:SI (match_operand:DI 2 "register_operand" "0") 0))
-                     (mem:BLK (subreg:SI (match_operand:DI 3 "register_operand" "1") 0))))
-   (use (match_dup 2))
-   (use (match_dup 3))]
-  "!TARGET_64BIT"
+  ""
   "clcle\t%0,%1,0\;jo\t.-4"
   [(set_attr "length" "8")
    (set_attr "type" "vs")])