gcc/libatomic
Torvald Riegel 969a32ce93 Fix __atomic to not implement atomic loads with CAS.
gcc/
	* builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
	conditional on existance of a fast atomic load.
	* optabs-query.c (can_atomic_load_p): New function.
	* optabs-query.h (can_atomic_load_p): Declare it.
	* optabs.c (expand_atomic_exchange): Always delegate to libatomic if
	no fast atomic load is available for the particular size of access.
	(expand_atomic_compare_and_swap): Likewise.
	(expand_atomic_load): Likewise.
	(expand_atomic_store): Likewise.
	(expand_atomic_fetch_op): Likewise.
	* testsuite/lib/target-supports.exp
	(check_effective_target_sync_int_128): Remove x86 because it provides
	no fast atomic load.
	(check_effective_target_sync_int_128_runtime): Likewise.

libatomic/
	* acinclude.m4: Add #define FAST_ATOMIC_LDST_*.
	* auto-config.h.in: Regenerate.
	* config/x86/host-config.h (FAST_ATOMIC_LDST_16): Define to 0.
	(atomic_compare_exchange_n): New.
	* glfree.c (EXACT, LARGER): Change condition and add comments.

From-SVN: r245098
2017-02-01 17:21:59 +00:00
..
config Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
testsuite re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-21 09:47:11 +01:00
.gitignore
acinclude.m4 Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
aclocal.m4 Makefile.am (libatomic_la_LDFLAGS): Add lt_host_flags. 2014-06-17 22:43:18 +02:00
auto-config.h.in Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
cas_n.c Update copyright years. 2017-01-01 13:07:43 +01:00
ChangeLog Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
configure re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
configure.ac re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
configure.tgt Update copyright years. 2017-01-01 13:07:43 +01:00
exch_n.c Update copyright years. 2017-01-01 13:07:43 +01:00
fadd_n.c Update copyright years. 2017-01-01 13:07:43 +01:00
fand_n.c
fence.c Update copyright years. 2017-01-01 13:07:43 +01:00
fenv.c Update copyright years. 2017-01-01 13:07:43 +01:00
fior_n.c
flag.c Update copyright years. 2017-01-01 13:07:43 +01:00
fnand_n.c
fop_n.c Update copyright years. 2017-01-01 13:07:43 +01:00
fsub_n.c
fxor_n.c
gcas.c Update copyright years. 2017-01-01 13:07:43 +01:00
gexch.c Update copyright years. 2017-01-01 13:07:43 +01:00
glfree.c Fix __atomic to not implement atomic loads with CAS. 2017-02-01 17:21:59 +00:00
gload.c Update copyright years. 2017-01-01 13:07:43 +01:00
gstore.c Update copyright years. 2017-01-01 13:07:43 +01:00
host-config.h Update copyright years. 2017-01-01 13:07:43 +01:00
init.c
libatomic_i.h Update copyright years. 2017-01-01 13:07:43 +01:00
libatomic.map Add out-of-line versions of some <stdatomic.h> functions (PR c/65083). 2015-11-18 22:13:44 +00:00
load_n.c Update copyright years. 2017-01-01 13:07:43 +01:00
Makefile.am re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
Makefile.in re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
store_n.c Update copyright years. 2017-01-01 13:07:43 +01:00
tas_n.c Update copyright years. 2017-01-01 13:07:43 +01:00