diff options
author | Adrian Straetling <straetling@de.ibm.com> | 2005-05-13 12:21:01 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2005-05-13 12:21:01 +0000 |
commit | a1aed706562a160e9d304a6806ce5ac70de89910 (patch) | |
tree | 36f7eda908e02cda38aff002225706531b970997 /gcc | |
parent | f5c9a09777ebdaa3fd74d356e00c1777d2610cd4 (diff) | |
download | gcc-a1aed706562a160e9d304a6806ce5ac70de89910.zip gcc-a1aed706562a160e9d304a6806ce5ac70de89910.tar.gz gcc-a1aed706562a160e9d304a6806ce5ac70de89910.tar.bz2 |
s390.md: ("DBL"): New mode attribute.
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".
From-SVN: r99654
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/s390/s390.md | 76 |
2 files changed, 28 insertions, 55 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 286c65c..00f3607 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index d853f8a..93f805e 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -329,6 +329,10 @@ ;; 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")]) @@ -1897,28 +1901,15 @@ 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")]) @@ -2037,26 +2028,14 @@ 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")]) @@ -2180,28 +2159,15 @@ 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")]) |