aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Straetling <straetling@de.ibm.com>2005-12-14 16:05:01 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2005-12-14 16:05:01 +0000
commit0101708cff1c9f2bc2a1ec468c2139ddddc60fd5 (patch)
tree4ed819cec5256c16ccc4336160860b39147fd059
parentf41d6665b2a2baa315878fc48549e53575625136 (diff)
downloadgcc-0101708cff1c9f2bc2a1ec468c2139ddddc60fd5.zip
gcc-0101708cff1c9f2bc2a1ec468c2139ddddc60fd5.tar.gz
gcc-0101708cff1c9f2bc2a1ec468c2139ddddc60fd5.tar.bz2
s390.md ("atype", "length"): Rewrite.
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. From-SVN: r108514
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/s390/s390.md44
2 files changed, 12 insertions, 37 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e49e19f..2a56930 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index c9ce6fd..dab9b58 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -213,45 +213,15 @@
;; 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)))
@@ -2615,7 +2585,7 @@
[(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
@@ -2636,7 +2606,7 @@
[(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