diff options
author | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-07 16:35:27 +0000 |
---|---|---|
committer | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-07 16:35:27 +0000 |
commit | 891e309693dbbf1ddddcf11d50f9bfbc0b3350ce (patch) | |
tree | bb3a25e110cedc41afc38795fab064c14523fc41 /gcc/config/s390/2064.md | |
parent | 3e790786cfb2c88061ebc1faad8273489bf3c388 (diff) | |
download | gcc-891e309693dbbf1ddddcf11d50f9bfbc0b3350ce.tar.gz |
2005-06-07 Adrian Straetling <straetling@de.ibm.com>
gcc/ChangeLog:
* config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
("type"): Add "sem" to 'type' attribute.
("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
"sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
"sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
"*sync_compare_and_swap_ccsi"): New patterns.
* config/s390/2064.md: ("z_sem"): New insn_reservation.
* config/s390/2084.md: ("x_sem"): New insn_reservation.
* config/s390/s390.c: (s390_compare_emitted): New global variable.
(s390_emit_compare): Do not emit comparison again after cas.
* config/s390/s390.h (s390_compare_emitted): Declare.
libstdc++/ChangeLog:
* config/cpu/s390/atomicity.h: (__exchange_and_add,
__atomic_add): Use the builtins for atomic memory operations.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100711 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/s390/2064.md')
-rw-r--r-- | gcc/config/s390/2064.md | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/s390/2064.md b/gcc/config/s390/2064.md index 04564eb86f3..4c757acf1ef 100644 --- a/gcc/config/s390/2064.md +++ b/gcc/config/s390/2064.md @@ -67,6 +67,11 @@ (eq_attr "type" "store")) "z_e1,z_wr") +(define_insn_reservation "z_sem" 2 + (and (eq_attr "cpu" "z900,g5,g6") + (eq_attr "type" "sem")) + "z_e1*2,z_wr") + (define_insn_reservation "z_call" 5 (and (eq_attr "cpu" "z900,g5,g6") (eq_attr "type" "jsr")) |