<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libatomic_ops.git/src/atomic_ops.h, branch draft-coveralls-linux</title>
<subtitle>github.com: ivmai/libatomic_ops.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/'/>
<entry>
<title>Workaround a bug in double-wide intrinsics of Clang/x64 with ASan enabled</title>
<updated>2016-11-24T17:13:06+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2016-11-24T17:13:06+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=637f7fe16e11118f33e23abd63469229d6df6e08'/>
<id>637f7fe16e11118f33e23abd63469229d6df6e08</id>
<content type='text'>
As of clang-3.8, double-wide arguments are incorrectly passed to
atomic intrinsic operations for x64 target if Address Sanitizer is
enabled.

* src/atomic_ops.h [__has_feature(address_sanitizer)]
(AO_ADDRESS_SANITIZER): New internal macro.
* src/atomic_ops/sysdeps/gcc/x86.h [AO_GCC_ATOMIC_TEST_AND_SET
&amp;&amp; __clang__ &amp;&amp; __x86_64__ &amp;&amp; !__ILP32__]
(AO_SKIPATOMIC_double_compare_and_swap_ANY, AO_SKIPATOMIC_double_load,
AO_SKIPATOMIC_double_load_acquire, AO_SKIPATOMIC_double_store,
AO_SKIPATOMIC_double_store_release): Define also if AO_ADDRESS_SANITIZER;
update comment.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As of clang-3.8, double-wide arguments are incorrectly passed to
atomic intrinsic operations for x64 target if Address Sanitizer is
enabled.

* src/atomic_ops.h [__has_feature(address_sanitizer)]
(AO_ADDRESS_SANITIZER): New internal macro.
* src/atomic_ops/sysdeps/gcc/x86.h [AO_GCC_ATOMIC_TEST_AND_SET
&amp;&amp; __clang__ &amp;&amp; __x86_64__ &amp;&amp; !__ILP32__]
(AO_SKIPATOMIC_double_compare_and_swap_ANY, AO_SKIPATOMIC_double_load,
AO_SKIPATOMIC_double_load_acquire, AO_SKIPATOMIC_double_store,
AO_SKIPATOMIC_double_store_release): Define also if AO_ADDRESS_SANITIZER;
update comment.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix powerpc detection on AIX (gcc)</title>
<updated>2016-11-17T22:14:23+00:00</updated>
<author>
<name>Tobias Leich</name>
<email>email@froggs.de</email>
</author>
<published>2016-11-17T22:05:42+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=b6bfe95a4e215d2db19f26ba5a8cb8b0726e2afe'/>
<id>b6bfe95a4e215d2db19f26ba5a8cb8b0726e2afe</id>
<content type='text'>
GCC/powerpc-ibm-aix does not define any of __powerpc__, __ppc__,
__PPC__, __powerpc64__, __ppc64__; but it does define _ARCH_PPC (and
_POWER).

* src/atomic_ops.h [_ARCH_PPC]: Include gcc/powerpc.h.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GCC/powerpc-ibm-aix does not define any of __powerpc__, __ppc__,
__PPC__, __powerpc64__, __ppc64__; but it does define _ARCH_PPC (and
_POWER).

* src/atomic_ops.h [_ARCH_PPC]: Include gcc/powerpc.h.
</pre>
</div>
</content>
</entry>
<entry>
<title>Workaround 'function is never used' cppcheck style warnings</title>
<updated>2016-10-25T07:14:05+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2016-10-25T07:13:35+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=30596717d2c3580e826b4660efdf1b1926fa1073'/>
<id>30596717d2c3580e826b4660efdf1b1926fa1073</id>
<content type='text'>
* src/atomic_ops.h [AO_CAN_EMUL_CAS]: Include emul_cas.h also if
CPPCHECK (to define AO_store_full as AO_store_full_emulation).
* tests/test_atomic_include.template [CPPCHECK] (list_atomicXX,
char_list_atomicXX, short_list_atomicXX, int_list_atomicXX,
double_list_atomicXX): Declare function.
* tests/test_atomic_include.template test_atomicXX (test_atomicXX):
Call list_atomicXX, char_list_atomicXX, short_list_atomicXX,
int_list_atomicXX and double_list_atomicXX if CPPCHECK.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.h [AO_CAN_EMUL_CAS]: Include emul_cas.h also if
CPPCHECK (to define AO_store_full as AO_store_full_emulation).
* tests/test_atomic_include.template [CPPCHECK] (list_atomicXX,
char_list_atomicXX, short_list_atomicXX, int_list_atomicXX,
double_list_atomicXX): Declare function.
* tests/test_atomic_include.template test_atomicXX (test_atomicXX):
Call list_atomicXX, char_list_atomicXX, short_list_atomicXX,
int_list_atomicXX and double_list_atomicXX if CPPCHECK.
</pre>
</div>
</content>
</entry>
<entry>
<title>Workaround '#error' cppcheck error messages</title>
<updated>2016-10-05T19:13:13+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2016-10-05T19:13:13+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=11f324ee661d7a7ba1933f74430fe1ae14648e40'/>
<id>11f324ee661d7a7ba1933f74430fe1ae14648e40</id>
<content type='text'>
* src/atomic_ops.h [AO_REQUIRE_CAS &amp;&amp; !AO_CAN_EMUL_CAS]: Skip #error
pragma if CPPCHECK.
* src/atomic_ops/generalize.h [AO_HAVE_nop_acquire]: Likewise.
* src/atomic_ops/generalize.h [AO_HAVE_nop_release]: Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM &lt; 6]:
Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.h [AO_REQUIRE_CAS &amp;&amp; !AO_CAN_EMUL_CAS]: Skip #error
pragma if CPPCHECK.
* src/atomic_ops/generalize.h [AO_HAVE_nop_acquire]: Likewise.
* src/atomic_ops/generalize.h [AO_HAVE_nop_release]: Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM &lt; 6]:
Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typos in 'error' pragma messages</title>
<updated>2016-10-05T18:47:35+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2016-10-05T18:47:35+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=2f18c21601472fac497d9d6bd3f5881ad75254ce'/>
<id>2f18c21601472fac497d9d6bd3f5881ad75254ce</id>
<content type='text'>
* src/atomic_ops.h [_HPUX_SOURCE &amp;&amp; !__ia64] (AO_barrier_dummy):
Fix typo ("do not") in comment.
* src/atomic_ops/generalize.h [AO_HAVE_nop_acquire]: Fix typo
("do not") in #error message.
* src/atomic_ops/generalize.h [AO_HAVE_nop_release]: Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM &lt; 6]:
Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM &lt; 6]: Add
#error pragma.
* src/atomic_ops_stack.c [AO_HAVE_compare_and_swap_double]: Fix typo
("does not") in #error message.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.h [_HPUX_SOURCE &amp;&amp; !__ia64] (AO_barrier_dummy):
Fix typo ("do not") in comment.
* src/atomic_ops/generalize.h [AO_HAVE_nop_acquire]: Fix typo
("do not") in #error message.
* src/atomic_ops/generalize.h [AO_HAVE_nop_release]: Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM &lt; 6]:
Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM &lt; 6]: Add
#error pragma.
* src/atomic_ops_stack.c [AO_HAVE_compare_and_swap_double]: Fix typo
("does not") in #error message.
</pre>
</div>
</content>
</entry>
<entry>
<title>Basic support of TILE-Gx and TILEPro CPUs</title>
<updated>2016-05-11T19:19:57+00:00</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@mellanox.com</email>
</author>
<published>2016-05-11T19:19:57+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=04a286421802a503b58d804d0d673dd5a28c9e9b'/>
<id>04a286421802a503b58d804d0d673dd5a28c9e9b</id>
<content type='text'>
This patch is an updated version of the CentOS 6 patch that we have
been carrying as part of our own CentOS-like distribution since 2012.

* src/Makefile.am (nobase_private_HEADERS): Add tile.h.
* src/atomic_ops.h [__tile__]: Include tile.h file.
* src/atomic_ops/sysdeps/gcc/tile.h: New file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch is an updated version of the CentOS 6 patch that we have
been carrying as part of our own CentOS-like distribution since 2012.

* src/Makefile.am (nobase_private_HEADERS): Add tile.h.
* src/atomic_ops.h [__tile__]: Include tile.h file.
* src/atomic_ops/sysdeps/gcc/tile.h: New file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add initial nios2 architecture support</title>
<updated>2016-03-15T07:09:26+00:00</updated>
<author>
<name>Marek Vasut</name>
<email>marex@denx.de</email>
</author>
<published>2016-03-15T07:09:26+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=4b005ee56898309e8afba9b3c48cf94f0f5f78e4'/>
<id>4b005ee56898309e8afba9b3c48cf94f0f5f78e4</id>
<content type='text'>
* src/Makefile.am (nobase_private_HEADERS): Add nios2.h.
* src/atomic_ops.h: Include nios2.h if __nios2__.
* src/atomic_ops/sysdeps/gcc/nios2.h: New file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/Makefile.am (nobase_private_HEADERS): Add nios2.h.
* src/atomic_ops.h: Include nios2.h if __nios2__.
* src/atomic_ops/sysdeps/gcc/nios2.h: New file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Generalize double_load/store for x86_64 (GCC)</title>
<updated>2013-03-29T13:56:44+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2013-03-29T04:55:13+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=a3b07048d62f6e247286dc6a9c2d757f2cdc0531'/>
<id>a3b07048d62f6e247286dc6a9c2d757f2cdc0531</id>
<content type='text'>
* src/atomic_ops.h (AO_GENERALIZE_TWICE): Define in case of missing
double-wide load or store primitives while double-wide CAS is present
(required for x86-64, at least).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.h (AO_GENERALIZE_TWICE): Define in case of missing
double-wide load or store primitives while double-wide CAS is present
(required for x86-64, at least).
</pre>
</div>
</content>
</entry>
<entry>
<title>Add AArch64 (64-bit ARM) target initial support</title>
<updated>2013-01-23T20:47:58+00:00</updated>
<author>
<name>Yvan Roux</name>
<email>yvan.roux@linaro.org</email>
</author>
<published>2013-01-23T20:47:58+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=cbbf86330fcb600cfe0f895cb970d922456005d6'/>
<id>cbbf86330fcb600cfe0f895cb970d922456005d6</id>
<content type='text'>
* src/Makefile.am (nobase_private_HEADERS): Add gcc/aarch64.h entry.
* src/atomic_ops.h: Include gcc/aarch64.h if __aarch64__.
* src/atomic_ops/sysdeps/gcc/aarch64.h: New file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/Makefile.am (nobase_private_HEADERS): Add gcc/aarch64.h entry.
* src/atomic_ops.h: Include gcc/aarch64.h if __aarch64__.
* src/atomic_ops/sysdeps/gcc/aarch64.h: New file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove gcc/x86_64.h to eliminate gcc/x86.h code duplication</title>
<updated>2012-10-08T11:47:34+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2012-10-08T11:45:30+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=1f1dabbc4d451552036a405faacfb11f22a75604'/>
<id>1f1dabbc4d451552036a405faacfb11f22a75604</id>
<content type='text'>
* src/Makefile.am (nobase_private_HEADERS): Remove reference to
gcc/x86_64.h.
* src/atomic_ops.h: Include gcc/x86.h both for x86 and x86_64 (if
__sun defined but not GCC); do not define AO_USE_PENTIUM4_INSTRS;
do not test __ILP32__ here.
* src/atomic_ops/sysdeps/gcc/x86.h: Include standard_ao_double_t.h
only if AO_compare_double_and_swap_double_full (or
AO_double_compare_and_swap_full) defined.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_USE_PENTIUM4_INSTRS):
Explicitly define for x86_64 chips.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_fetch_and_add_full,
AO_and_full, AO_or_full, AO_xor_full, AO_compare_and_swap_full,
AO_fetch_compare_and_swap_full): Remove "l" suffix (the size is
properly determined by operands).
* src/atomic_ops/sysdeps/gcc/x86.h (AO_double_compare_and_swap_full,
AO_HAVE_double_compare_and_swap_full): Define only if __ILP32__.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_T_IS_INT): Define only for
32-bit mode.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_int_fetch_and_add_full,
AO_HAVE_int_fetch_and_add_full,
AO_compare_double_and_swap_double_full): Move definition from
gcc/x86_64.h; define only for true 64-bit mode.
* src/atomic_ops/sysdeps/gcc/x86_64.h: Delete this file.
* src/atomic_ops/sysdeps/msftc/x86_64.h
(AO_compare_double_and_swap_double_full): Update comment.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/Makefile.am (nobase_private_HEADERS): Remove reference to
gcc/x86_64.h.
* src/atomic_ops.h: Include gcc/x86.h both for x86 and x86_64 (if
__sun defined but not GCC); do not define AO_USE_PENTIUM4_INSTRS;
do not test __ILP32__ here.
* src/atomic_ops/sysdeps/gcc/x86.h: Include standard_ao_double_t.h
only if AO_compare_double_and_swap_double_full (or
AO_double_compare_and_swap_full) defined.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_USE_PENTIUM4_INSTRS):
Explicitly define for x86_64 chips.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_fetch_and_add_full,
AO_and_full, AO_or_full, AO_xor_full, AO_compare_and_swap_full,
AO_fetch_compare_and_swap_full): Remove "l" suffix (the size is
properly determined by operands).
* src/atomic_ops/sysdeps/gcc/x86.h (AO_double_compare_and_swap_full,
AO_HAVE_double_compare_and_swap_full): Define only if __ILP32__.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_T_IS_INT): Define only for
32-bit mode.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_int_fetch_and_add_full,
AO_HAVE_int_fetch_and_add_full,
AO_compare_double_and_swap_double_full): Move definition from
gcc/x86_64.h; define only for true 64-bit mode.
* src/atomic_ops/sysdeps/gcc/x86_64.h: Delete this file.
* src/atomic_ops/sysdeps/msftc/x86_64.h
(AO_compare_double_and_swap_double_full): Update comment.
</pre>
</div>
</content>
</entry>
</feed>
