From a1aed706562a160e9d304a6806ce5ac70de89910 Mon Sep 17 00:00:00 2001 From: Adrian Straetling Date: Fri, 13 May 2005 12:21:01 +0000 Subject: [PATCH] s390.md: ("DBL"): New mode attribute. 2005-05-13 Adrian Straetling * 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 --- gcc/ChangeLog | 7 ++++ gcc/config/s390/s390.md | 76 ++++++++++++----------------------------- 2 files changed, 28 insertions(+), 55 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 286c65cd482..00f3607a13f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-05-13 Adrian Straetling + + * 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 * 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 d853f8a556c..93f805ed7f9 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 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: 0 "register_operand" "=d")) + (clobber (match_operand: 1 "register_operand" "=d")) + (set (mem:BLK (subreg:P (match_operand: 2 "register_operand" "0") 0)) + (mem:BLK (subreg:P (match_operand: 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: 0 "register_operand" "=d")) + (set (mem:BLK (subreg:P (match_operand: 2 "register_operand" "0") 0)) (const_int 0)) (use (match_dup 2)) - (use (match_operand:TI 1 "register_operand" "d")) + (use (match_operand: 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: 0 "register_operand" "=d")) + (clobber (match_operand: 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: 2 "register_operand" "0") 0)) + (mem:BLK (subreg:P (match_operand: 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")]) -- 2.30.2