gcc/libstdc++-v3
Andi Kleen d76b6ea417 libstdc++: Add mem_order_hle_acquire/release to atomic.h v2
The underlying compiler supports additional __ATOMIC_HLE_ACQUIRE/RELEASE
memmodel flags for TSX, but this was not exposed to the C++ wrapper.
Handle it there.

These are additional flags, so some of assert checks need to mask
off the flags before checking the memory model type.

libstdc++-v3/:
2013-01-12  Andi Kleen  <ak@linux.intel.com>
	    Jonathan Wakely  <jwakely.gcc@gmail.com>

        PR libstdc++/55223
	* include/bits/atomic_base.h (__memory_order_modifier): Add
	__memory_order_mask, __memory_order_modifier_mask,
	__memory_order_hle_acquire, __memory_order_hle_release.
	(operator|,operator&): Add.
	(__cmpexch_failure_order):  Rename to __cmpexch_failure_order2.
	(__cmpexch_failure_order): Add.
	(clear, store, load, compare_exchange_weak, compare_exchange_strong):
	Handle flags.
	* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
	Add.

Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>

From-SVN: r195321
2013-01-20 19:03:22 +00:00
..
config re PR libstdc++/55847 (mistake bad_weak_ptr::what() message) 2013-01-07 00:50:16 +00:00
doc * doc/xml/manual/status_cxx2011.xml: Document that N3189 is missing. 2013-01-08 21:29:20 +00:00
include libstdc++: Add mem_order_hle_acquire/release to atomic.h v2 2013-01-20 19:03:22 +00:00
libsupc++ Update Copyright years for files modified in 2011 and/or 2012. 2013-01-04 13:49:55 +01:00
po
python
scripts Update Copyright years for files modified in 2011 and/or 2012. 2013-01-04 13:49:55 +01:00
src re PR libstdc++/55847 (mistake bad_weak_ptr::what() message) 2013-01-07 00:50:16 +00:00
testsuite libstdc++: Add mem_order_hle_acquire/release to atomic.h v2 2013-01-20 19:03:22 +00:00
acinclude.m4 Restrict -Wa,-nH use to Solaris (PR libstdc++/55594) 2013-01-08 09:47:55 +00:00
aclocal.m4
ChangeLog libstdc++: Add mem_order_hle_acquire/release to atomic.h v2 2013-01-20 19:03:22 +00:00
ChangeLog-1998 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-1999 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2000 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2001 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2002 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2003 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2004 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2005 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2006 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2007 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2008 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2009 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2010 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2011 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2012 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
config.h.in re PR libstdc++/55741 (bootstrap fails in libstdc++-v3/src/c++11/thread.cc) 2012-12-20 14:36:56 +00:00
configure Restrict -Wa,-nH use to Solaris (PR libstdc++/55594) 2013-01-08 09:47:55 +00:00
configure.ac
configure.host
crossconfig.m4
fragment.am
linkage.m4
Makefile.am
Makefile.in
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.