pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
authorJohn David Anglin <danglin@gcc.gnu.org>
Fri, 25 Sep 2015 00:01:34 +0000 (00:01 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Fri, 25 Sep 2015 00:01:34 +0000 (00:01 +0000)
commit7e7c9d40d17e0efb27691fe9dfc4c831d03c7ff2
tree2b7872002777ddf16e2fc54b210c920b56922e35
parent4fe017f67af0b6ac09c568626227460d7a1209c1
pa-linux.h (HAVE_sync_compare_and_swapdi): Define.

* config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
* config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
Declare.
* config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
(pa_expand_compare_and_swap_loop): New.
(pa_maybe_emit_compare_and_swap_exchange_loop): New.
* config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
(atomic_loaddf_1, atomic_storedf_1): New insn patterns.
(atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
Revise.

From-SVN: r228104
gcc/ChangeLog
gcc/config/pa/pa-linux.h
gcc/config/pa/pa-protos.h
gcc/config/pa/pa.c
gcc/config/pa/pa.md