File s390-z10-bypasses of Package gcc43
Index: gcc/config/s390/2097.md
===================================================================
*** gcc/config/s390/2097.md.orig
--- gcc/config/s390/2097.md
***************
*** 57,63 ****
z10_int_fr_A3"
"z10_other_super, z10_other_super_c_E1, z10_other_super_E1, \
z10_int_super, z10_int_super_E1, \
! z10_lr, z10_store_super")
; Forwarding from z10_super to frz10_ and z10_rec.
--- 57,64 ----
z10_int_fr_A3"
"z10_other_super, z10_other_super_c_E1, z10_other_super_E1, \
z10_int_super, z10_int_super_E1, \
! z10_lr, z10_store_super"
! " ! s390_agen_dep_p")
; Forwarding from z10_super to frz10_ and z10_rec.
***************
*** 68,74 ****
z10_store_super"
"z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \
z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \
! z10_other_fr_E1, z10_store_rec")
; Forwarding from z10_fwd and z10_fr to z10_rec and z10_fr.
--- 69,76 ----
z10_store_super"
"z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \
z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \
! z10_other_fr_E1, z10_store_rec"
! " ! s390_agen_dep_p")
; Forwarding from z10_fwd and z10_fr to z10_rec and z10_fr.
***************
*** 84,90 ****
z10_int_fr_A3"
"z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \
z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \
! z10_other_fr_E1, z10_store_rec")
;
--- 86,93 ----
z10_int_fr_A3"
"z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \
z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \
! z10_other_fr_E1, z10_store_rec"
! " ! s390_agen_dep_p")
;
***************
*** 205,219 ****
(and (eq_attr "type" "lr")
(eq_attr "z10prop" "z10_fr")))
"z10_e1_ANY, z10_Gate_ANY")
- ; "z10_e1_ANY")
(define_insn_reservation "z10_lr_fr_E1" 6
(and (eq_attr "cpu" "z10")
(and (eq_attr "type" "lr")
(eq_attr "z10prop" "z10_fr_E1")))
"z10_e1_ANY, z10_Gate_ANY")
- ; "z10_e1_ANY")
-
(define_insn_reservation "z10_la" 6
(and (eq_attr "cpu" "z10")
--- 208,219 ----
***************
*** 227,240 ****
(and (eq_attr "type" "la")
(eq_attr "z10prop" "z10_fwd")))
"z10_e1_ANY, z10_Gate_ANY")
- ; "z10_e1_ANY")
(define_insn_reservation "z10_la_fwd_A1" 6
(and (eq_attr "cpu" "z10")
(and (eq_attr "type" "la")
(eq_attr "z10prop" "z10_fwd_A1")))
"z10_e1_ANY, z10_Gate_ANY")
- ; "z10_e1_ANY")
; larl-type instructions
--- 227,238 ----
***************
*** 666,678 ****
; Address-related bypasses
;
! ; Here is the cycle diagram for Address-related bypasses:
; ... G1 G2 G3 A0 A1 A2 A3 E1 P1 P2 P3 R0 ...
! ; ^ ^ ^ ^ ^
! ; | | | | E1-type bypasses provide the new addr AFTER this cycle
! ; | | | A3-type bypasses provide the new addr AFTER this cycle
! ; | | A1-type bypasses provide the new addr AFTER this cycle
! ; | AGI resolution, actual USE of address is DURING this cycle
; AGI detection
(define_bypass 3 "z10_larl_A1, z10_la_fwd_A1, z10_other_fwd_A1, \
--- 664,677 ----
; Address-related bypasses
;
! ; Here is the cycle diagram for address-related bypasses:
; ... G1 G2 G3 A0 A1 A2 A3 E1 P1 P2 P3 R0 ...
! ; ^ ^ ^ ^ ^ ^
! ; | | | | | without bypass, its available AFTER this cycle
! ; | | | | E1-type bypasses provide the new value AFTER this cycle
! ; | | | A3-type bypasses provide the new value AFTER this cycle
! ; | | A1-type bypasses provide the new value AFTER this cycle
! ; | AGI resolution, actual USE of new value is DURING this cycle
; AGI detection
(define_bypass 3 "z10_larl_A1, z10_la_fwd_A1, z10_other_fwd_A1, \
***************
*** 682,688 ****
z10_cs, z10_stm, z10_other"
"s390_agen_dep_p")
-
(define_bypass 5 "z10_larl_fwd_A3, z10_load_fwd_A3, z10_other_fwd_A3, \
z10_other_fr_A3, z10_int_fwd_A3, z10_int_fr_A3"
"z10_agen, z10_la, z10_branch, z10_call, z10_load, \
--- 681,686 ----
***************
*** 697,702 ****
--- 695,706 ----
"z10_agen, z10_la, z10_branch, z10_call, z10_load, \
z10_store, \
z10_cs, z10_stm, z10_other"
+ "s390_agen_dep_p")
+
+ (define_bypass 9 "z10_int_super, z10_int_fwd, z10_int_fr"
+ "z10_agen, z10_la, z10_branch, z10_call, z10_load, \
+ z10_store, \
+ z10_cs, z10_stm, z10_other"
"s390_agen_dep_p")