From patchwork Fri Nov 9 15:04:15 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Document __ATOMIC_HLE_ACQUIRE/RELEASE Date: Fri, 09 Nov 2012 05:04:15 -0000 From: Andi Kleen X-Patchwork-Id: 198096 Message-Id: <1352473455-12009-1-git-send-email-andi@firstfloor.org> To: gcc-patches@gcc.gnu.org Cc: Andi Kleen From: Andi Kleen Make a first stab at the undocumented HLE_ACQUIRE/RELEASE memory model modifiers in the documentation gcc/: 2012-11-09 Andi Kleen * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE and RELEASE. --- gcc/doc/extend.texi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 54fd548..248977d 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -7194,6 +7194,16 @@ Full barrier in both directions and synchronizes with acquire loads and release stores in all threads. @end table +Additional target specific flags that can be ored with the memory models. +@table @code +@item __ATOMIC_HLE_ACQUIRE +(on i386/x86_64). Start a Hardware Lock Elision transaction with the atomic +operation. The memory model must be @code{__ATOMIC_ACQUIRE} or stronger. +@item __ATOMIC_HLE_RELEASE +(on i386/x86_64). Commit a Hardware Lock Elision transaction with the atomic +operation. The memory model must be @code{__ATOMIC_RELEASE} or stronger. +@end table + When implementing patterns for these built-in functions, the memory model parameter can be ignored as long as the pattern implements the most restrictive @code{__ATOMIC_SEQ_CST} model. Any of the other memory models