* config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
commit8ef0dc805f8c8499a061ba962cc61bebc0a67304
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Sep 2015 00:01:34 +0000 (25 00:01 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Sep 2015 00:01:34 +0000 (25 00:01 +0000)
tree2b7872002777ddf16e2fc54b210c920b56922e35
parentb6205e1fdb5e2389d59f27e20b657f3db480fd65
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228104 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/pa/pa-linux.h
gcc/config/pa/pa-protos.h
gcc/config/pa/pa.c
gcc/config/pa/pa.md