OSDN Git Service

2005-12-14 Adrian Straetling <straetling@de.ibm.com>
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Dec 2005 16:05:01 +0000 (16:05 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Dec 2005 16:05:01 +0000 (16:05 +0000)
* config/s390/s390.md ("atype", "length"): Rewrite.
("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.

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

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

index e49e19f..2a56930 100644 (file)
@@ -1,3 +1,8 @@
+2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md ("atype", "length"): Rewrite.
+       ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
+
 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
 
        * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
index c9ce6fd..dab9b58 100644 (file)
 ;;   reg: Instruction does not use the agen unit
 
 (define_attr "atype" "agen,reg"
-  (cond [(eq_attr "op_type" "E")   (const_string "reg")
-         (eq_attr "op_type" "RR")  (const_string "reg")
-         (eq_attr "op_type" "RX")  (const_string "agen")
-         (eq_attr "op_type" "RI")  (const_string "reg")
-         (eq_attr "op_type" "RRE") (const_string "reg")
-         (eq_attr "op_type" "RS")  (const_string "agen")
-         (eq_attr "op_type" "RSI") (const_string "agen")
-         (eq_attr "op_type" "S")   (const_string "agen")
-         (eq_attr "op_type" "SI")  (const_string "agen")
-         (eq_attr "op_type" "SS")  (const_string "agen")
-         (eq_attr "op_type" "SSE") (const_string "agen")
-         (eq_attr "op_type" "RXE") (const_string "agen")
-         (eq_attr "op_type" "RSE") (const_string "agen")
-         (eq_attr "op_type" "RIL") (const_string "agen")
-         (eq_attr "op_type" "RXY") (const_string "agen")
-         (eq_attr "op_type" "RSY") (const_string "agen")
-         (eq_attr "op_type" "SIY") (const_string "agen")]
-    (const_string "agen")))
+  (if_then_else (eq_attr "op_type" "E,RR,RI,RRE")  
+               (const_string "reg")
+               (const_string "agen")))
 
 ;; Length in bytes.
 
 (define_attr "length" ""
-  (cond [(eq_attr "op_type" "E")   (const_int 2)
-         (eq_attr "op_type" "RR")  (const_int 2)
-         (eq_attr "op_type" "RX")  (const_int 4)
-         (eq_attr "op_type" "RI")  (const_int 4)
-         (eq_attr "op_type" "RRE") (const_int 4)
-         (eq_attr "op_type" "RS")  (const_int 4)
-         (eq_attr "op_type" "RSI") (const_int 4)
-         (eq_attr "op_type" "S")   (const_int 4)
-         (eq_attr "op_type" "SI")  (const_int 4)
-         (eq_attr "op_type" "SS")  (const_int 6)
-         (eq_attr "op_type" "SSE") (const_int 6)
-         (eq_attr "op_type" "RXE") (const_int 6)
-         (eq_attr "op_type" "RSE") (const_int 6)
-         (eq_attr "op_type" "RIL") (const_int 6)
-         (eq_attr "op_type" "RXY") (const_int 6)
-         (eq_attr "op_type" "RSY") (const_int 6)
-         (eq_attr "op_type" "SIY") (const_int 6)]
+  (cond [(eq_attr "op_type" "E,RR")                  (const_int 2)
+         (eq_attr "op_type" "RX,RI,RRE,RS,RSI,S,SI")  (const_int 4)]
     (const_int 6)))
 
 
   [(set (zero_extract:P (match_operand:P 0 "register_operand" "+d")
                        (const_int 16)
                        (match_operand 1 "const_int_operand" "n"))
-       (match_operand 2 "const_int_operand" "n"))]
+       (match_operand:P 2 "const_int_operand" "n"))]
   "TARGET_ZARCH
    && INTVAL (operands[1]) >= 0
    && INTVAL (operands[1]) < BITS_PER_WORD
   [(set (zero_extract:P (match_operand:P 0 "register_operand" "+d")
                        (const_int 32)
                        (match_operand 1 "const_int_operand" "n"))
-       (match_operand 2 "const_int_operand" "n"))]
+       (match_operand:P 2 "const_int_operand" "n"))]
   "TARGET_EXTIMM
    && INTVAL (operands[1]) >= 0
    && INTVAL (operands[1]) < BITS_PER_WORD