diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2004-11-06 19:57:41 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2004-11-06 19:57:41 +0000 |
commit | 29a74354b004a576e785946c752a16c26d5e7281 (patch) | |
tree | 4f831f5fa5c96b2383994ecb79b41ccb31af2dbf /gcc/config/s390/2084.md | |
parent | a8f48325ac79f3237e0cb79613b8db3057cb0bba (diff) | |
download | gcc-29a74354b004a576e785946c752a16c26d5e7281.zip gcc-29a74354b004a576e785946c752a16c26d5e7281.tar.gz gcc-29a74354b004a576e785946c752a16c26d5e7281.tar.bz2 |
2064.md ("z_int", "z_agen"): Ensure the condition matches no insns already matched by other reservations.
* config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
matches no insns already matched by other reservations.
* config/s390/2084.md ("x_int", "x_agen"): Ensure the condition
matches no insns already matched by other reservations.
("x_ss"): Remove, replace by ...
("x_cs"): ... this new reservation. Check type instead of op_type.
Update bypasses to use x_cs instead of x_ss.
("x_nn"): Remove, replace by ...
("x_other"): ... this new reservation. Check type instead of op_type.
Add x_other and x_branch to bypasses.
("x_vs"): New reservation.
* config/s390/s390.md (attribute "type"): Default according to op_type.
("*execute"): Set type to "cs".
From-SVN: r90190
Diffstat (limited to 'gcc/config/s390/2084.md')
-rw-r--r-- | gcc/config/s390/2084.md | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/gcc/config/s390/2084.md b/gcc/config/s390/2084.md index cff4420..c07f4cf 100644 --- a/gcc/config/s390/2084.md +++ b/gcc/config/s390/2084.md @@ -61,6 +61,18 @@ ;; Simple insns ;; +(define_insn_reservation "x_int" 1 + (and (eq_attr "cpu" "z990") + (and (eq_attr "type" "integer") + (eq_attr "atype" "reg"))) + "x-e1-st,x-wr-st") + +(define_insn_reservation "x_agen" 1 + (and (eq_attr "cpu" "z990") + (and (eq_attr "type" "integer") + (eq_attr "atype" "agen"))) + "x-e1-st,x-wr-st") + (define_insn_reservation "x_lr" 1 (and (eq_attr "cpu" "z990") (eq_attr "type" "lr")) @@ -100,11 +112,16 @@ ;; Multicycle insns ;; -(define_insn_reservation "x_ss" 1 +(define_insn_reservation "x_cs" 1 (and (eq_attr "cpu" "z990") - (eq_attr "op_type" "SS")) + (eq_attr "type" "cs")) "x-e1-np,x-wr-np") +(define_insn_reservation "x_vs" 1 + (and (eq_attr "cpu" "z990") + (eq_attr "type" "vs")) + "x-e1-np*10,x-wr-np") + (define_insn_reservation "x_stm" 1 (and (eq_attr "cpu" "z990") (eq_attr "type" "stm")) @@ -115,9 +132,9 @@ (eq_attr "type" "lm")) "x-e1-np*10,x-wr-np") -(define_insn_reservation "x_nn" 1 +(define_insn_reservation "x_other" 1 (and (eq_attr "cpu" "z990") - (eq_attr "op_type" "NN")) + (eq_attr "type" "other")) "x-e1-np,x-wr-np") ;; @@ -183,21 +200,6 @@ (define_bypass 1 "x_floads" "x_fsimps,x_fstores,x_floads") ;; -;; Insns still not mentioned are checked for -;; the usage of the agen unit -;; - -(define_insn_reservation "x_int" 1 - (and (eq_attr "cpu" "z990") - (eq_attr "atype" "reg")) - "x-e1-st,x-wr-st") - -(define_insn_reservation "x_agen" 1 - (and (eq_attr "cpu" "z990") - (eq_attr "atype" "agen")) - "x-e1-st+x-mem,x-wr-st") - -;; ;; s390_agen_dep_p returns 1, if a register is set in the ;; first insn and used in the dependent insn to form a address. ;; @@ -208,7 +210,7 @@ ;; (define_bypass 5 "x_int,x_agen,x_lr" - "x_agen,x_la,x_call,x_load,x_store,x_ss,x_stm,x_lm" + "x_agen,x_la,x_branch,x_call,x_load,x_store,x_cs,x_stm,x_lm,x_other" "s390_agen_dep_p") (define_bypass 9 "x_int,x_agen,x_lr" @@ -221,7 +223,7 @@ ;; (define_bypass 4 "x_load" - "x_agen,x_la,x_call,x_load,x_store,x_ss,x_stm,x_lm" + "x_agen,x_la,x_branch,x_call,x_load,x_store,x_cs,x_stm,x_lm,x_other" "s390_agen_dep_p") (define_bypass 5 "x_load" @@ -235,7 +237,7 @@ ;; (define_bypass 3 "x_larl,x_la" - "x_agen,x_la,x_call,x_load,x_store,x_ss,x_stm,x_lm" + "x_agen,x_la,x_branch,x_call,x_load,x_store,x_cs,x_stm,x_lm,x_other" "s390_agen_dep_p") (define_bypass 5 "x_larl, x_la" |