summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* [7.4.18]v7.4.18release-7_4Ivan Maidanski2022-08-254-4/+4
| | | | | | | | | Bump libatomic_ops version to 7.4.18 * ChangeLog (7.4.18): Set release date. * README.md: Bump micro version. * configure.ac (AC_INIT): Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_MICRO): Likewise.
* Update ChangeLog file (set v7.2k release date)Ivan Maidanski2022-08-251-1/+1
|
* Update ChangeLog file (v7.2 - v7.4 changes only)Ivan Maidanski2022-08-251-0/+5
|
* Ensure result of AO_test_and_set is always AO_TS_CLEAR or AO_TS_SETIvan Maidanski2022-08-121-4/+8
| | | | | | | | | | | | | | (fix of commit cbbf8633) According to the GCC manual, __atomic_test_and_set() result type is Bool, thus it is not guaranteed to return AO_TS_SET value. (E.g., the function may return 1 while AO_TS_SET is 255, as observed on sparc64 with gcc-12.) * src/atomic_ops/sysdeps/gcc/generic.h [!AO_PREFER_GENERALIZED] (AO_test_and_set, AO_test_and_set_acquire, AO_test_and_set_release, AO_test_and_set_full): Return AO_TS_SET if __atomic_test_and_set() result is non-zero, AO_TS_CLEAR otherwise.
* Avoid AO_stack_t to cross CPU cache line boundaryIvan Maidanski2022-08-121-1/+31
| | | | | | | | | | | | | | | (a cherry-pick of commit ed712f7dc from 'release-7_6') Issue #45 (libatomic_ops). Enforce proper alignment of AO_stack_t.AO_ptr to avoid the structure value to cross the CPU cache line boundary. A workaround for almost-lock-free push/pop test failures on aarch64, at least. * src/atomic_ops_stack.h [AO_USE_ALMOST_LOCK_FREE && !AO_STACK_ATTR_ALLIGNED] (AO_STACK_ATTR_ALLIGNED): Define. * src/atomic_ops_stack.h [AO_USE_ALMOST_LOCK_FREE] (AO_stack_t.AO_ptr): Add AO_STACK_ATTR_ALLIGNED attribute.
* Repeat black list check on CAS fail in stack_push_explicit_aux_releaseIvan Maidanski2022-08-121-6/+4
| | | | | | | | | | | | | (a cherry-pick of commit ae0f8e7e4 from 'release-7_4') Also, execute the first read in a loop with an acquire barrier, and place black list checking as close to CAS as possible. * src/atomic_ops_stack.c [AO_USE_ALMOST_LOCK_FREE] (AO_stack_push_explicit_aux_release): Use acquire barrier to read list value (stored to next local variable); read list value and store it to x element before iterating over AO_stack_bl (and, thus, retry iterating over AO_stack_bl if CAS failed).
* Update ChangeLog file (v7.2 - v7.4 changes only)Ivan Maidanski2022-02-221-0/+11
|
* Fix 'use of undeclared SIG_BLOCK' Clang error if -std=c89 on CygwinIvan Maidanski2022-02-221-1/+2
| | | | | * src/atomic_ops.c [__CYGWIN__ && !AO_USE_NO_SIGNALS && !_GNU_SOURCE] (_GNU_SOURCE): Define macro.
* Fix code indentation in main of test_stack.cIvan Maidanski2022-02-221-3/+4
| | | | | | | (a cherry-pick of commit 9040f45a6 from 'release-7_6') * tests/test_stack.c (main): Adjust indentation for ifdef VERBOSE and for "for" statement (for statistic output).
* Fix a typo in comment of AO_stack_push_explicit_aux_releaseIvan Maidanski2022-02-221-1/+1
| | | | | | | | (a cherry-pick of commit 2d62edfd5 from 'master') * src/atomic_ops_stack.h [AO_USE_ALMOST_LOCK_FREE] (AO_stack_push_explicit_aux_release): Remove extra "an" (after "the") in comment.
* Remove outdated comment about unsupported Win64 in atomic_ops_stack.hIvan Maidanski2022-02-221-1/+0
| | | | | | | (fix of commit f30c76e28) * src/atomic_ops_stack.h [AO_USE_ALMOST_LOCK_FREE && (__LP64__ || _LP64 || _WIN64)] (AO_N_BITS): Remove outdated comment about Win64.
* Update ChangeLog file (v7.2 - v7.4 changes only)Ivan Maidanski2021-11-151-0/+5
|
* Update AUTHORS file (add David Mosberger)Ivan Maidanski2021-11-151-0/+1
|
* Do not assume 'ordered except earlier write' for UWP/arm64Ivan Maidanski2021-11-151-1/+2
| | | | | | | (fix of commit e078c7bb7) * src/atomic_ops/sysdeps/msftc/x86_64.h: Do not include ordered_except_wr.h if _M_ARM64.
* Travis CI: Ignore expired certificate reported by wgetIvan Maidanski2021-11-151-3/+3
| | | | (a cherry-pick of commit f105ef115 from 'release-7_6')
* AppVeyor CI: Specify VS 2015 image explicitlyIvan Maidanski2021-11-151-9/+10
| | | | | | (a cherry-pick of commit 2e9d20292 from 'master') Also, rename CPU variable to ARCH. Delete MS_SDK_VER variable.
* AppVeyor CI: Rename configuration file to .appveyor.ymlIvan Maidanski2021-11-151-0/+0
|
* [7.4.16]v7.4.16Ivan Maidanski2021-09-134-4/+4
| | | | | | | | | Bump libatomic_ops version to 7.4.16 * ChangeLog (7.4.16): Add release date. * README.md: Bump micro version. * configure.ac (AC_INIT): Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_MICRO): Likewise.
* Update ChangeLog file (add v7.2j release date)Ivan Maidanski2021-09-131-1/+1
|
* Update ChangeLog file (v7.2 - v7.4 changes only)Ivan Maidanski2021-09-091-0/+4
|
* Update AUTHORS file (add George Koehler)Ivan Maidanski2021-09-091-0/+1
|
* Fix size of local variable passed to cas[x] (gcc/sparc)George Koehler2021-09-091-1/+1
| | | | | | | | | Use the same type for input and output inline asm operands in AO_compare_and_swap_full(). * src/atomic_ops/sysdeps/gcc/sparc.h [!AO_NO_SPARC_V9 && !AO_GENERALIZE_ASM_BOOL_CAS] (AO_compare_and_swap_full): Change type of ret local variable from char to AO_t.
* Workaround assertion violation in AO_load/store on m68kIvan Maidanski2021-09-091-1/+8
| | | | | | | Issue #48 (libatomic_ops). * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h (AO_ACCESS_CHECK_ALIGNED): Do not define if __m68k__; add comment.
* Travis CI: Change deploy api_key (deprecated) to edgeIvan Maidanski2021-09-091-7/+6
| | | | (a cherry-pick of commit 9caa19f56 from 'release-7_6')
* Travis CI: Set default OS to LinuxIvan Maidanski2021-09-091-32/+17
| | | | (a cherry-pick of commit ba2aacbd0 from 'release-7_6')
* Travis CI: Set dist image to xenialIvan Maidanski2021-09-091-0/+1
|
* Travis CI: Rename matrix key to jobsIvan Maidanski2021-09-091-1/+1
|
* Travis CI: Remove deprecated deploy skip_cleanup keyIvan Maidanski2021-09-091-1/+0
|
* Update ChangeLog file (v7.2 - v7.4 changes only)Ivan Maidanski2020-03-121-0/+3
|
* Update AUTHORS file (add Frederic Recoules)Ivan Maidanski2020-03-121-0/+1
|
* Fix gcc/sunc x86 AO_compare_double_and_swap_double missing side effectFrederic Recoules2020-03-122-8/+15
| | | | | | | | | | | | | | (a cherry-pick of commit 50b8b0b from 'release-7_6') Bind E/RDX to a dummy output since cmpxchg8/16b clobbers it. * src/atomic_ops/sysdeps/gcc/x86.h [!__x86_64__ && !AO_USE_SYNC_CAS_BUILTIN || !(__ILP32__ || !__x86_64__) && AO_CMPXCHG16B_AVAILABLE] (AO_compare_double_and_swap_double_full): Declare dummy local variable; specify "=d"(dummy) for asm code. * src/atomic_ops/sysdeps/sunc/x86.h [__i386 && !AO_NO_CMPXCHG8B || !__i386 && AO_CMPXCHG16B_AVAILABLE] (AO_compare_double_and_swap_double_full): Likewise.
* Update ChangeLog file (v7.2 - v7.4 changes only)Ivan Maidanski2019-03-251-0/+6
|
* Fix library name in README_detailsIvan Maidanski2019-03-251-1/+1
| | | | * doc/README_details.txt: Fix typo ("libatomic_ops_gpl.a").
* [7.4.14]v7.4.14Ivan Maidanski2019-03-014-4/+4
| | | | | | | | | Bump libatomic_ops version to 7.4.14 * ChangeLog (7.4.14): Add release date. * README.md: Bump micro version. * configure.ac (AC_INIT): Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_MICRO): Likewise.
* .gitignore: Ignore /out folderIvan Maidanski2019-02-271-0/+2
|
* Update ChangeLog file (v7.4 changes only)Ivan Maidanski2019-01-261-0/+5
|
* Update AUTHORS file (add Max Horn)Ivan Maidanski2019-01-261-0/+1
| | | | (a cherry-pick of commit 333aafc from 'release-7_6')
* Fix 'AO_*_TS_T is not defined' compiler warnings (GCC-8)Max Horn2019-01-262-12/+14
| | | | | | | | | (a cherry-pick of commit 7eef5b2 from 'release-7_6') * src/atomic_ops.h [!AO_CLEAR]: Replace "AO_AO_TS_T" with "defined(AO_AO_TS_T)" and AO_CHAR_TS_T" with "defined(AO_CHAR_TS_T)", respectively, in the "if" preprocessor directives. * src/atomic_ops/generalize.h: Likewise.
* [7.4.12]v7.4.12Ivan Maidanski2018-12-114-4/+4
| | | | | | | | | Bump libatomic_ops version to 7.4.12 * ChangeLog (7.4.12): Add release date. * README.md: Bump micro version. * configure.ac (AC_INIT): Likewise. * src/atomic_ops/ao_version.h (AO_VERSION_MICRO): Likewise.
* Update ChangeLog file (v7.2 - v7.4 changes only)Ivan Maidanski2018-12-111-2/+2
|
* Undo incorrect fix of typos regarding 'an' articleIvan Maidanski2018-12-116-11/+13
| | | | | | | | | | | | | | | | | | | | | | (revert part of commit cbde60d) * src/atomic_ops/sysdeps/icc/ia64.h (AO_char_load_acquire): Fix typo ("an ld.acq") in comment. * src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.template (AO_XSIZE_load_acquire): Likewise. * src/atomic_ops/sysdeps/icc/ia64.h (AO_short_load_acquire, AO_int_load_acquire): Add comment (similar to that of AO_char_load_acquire). * src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.template (AO_XSIZE_store_release): Fix typo ("an st.rel") in comment. * src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h: Regenerate. * src/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h: Likewise. * src/atomic_ops/sysdeps/loadstore/int_acquire_release_volatile.h: Likewise. * src/atomic_ops/sysdeps/loadstore/short_acquire_release_volatile.h: Likewise.
* Update ChangeLog file (v7.2 - v7.4 changes only)Ivan Maidanski2018-12-041-0/+14
|
* Support ILP32 in AArch64 assembly routines (GCC)Frank Schaefer2018-10-292-17/+69
| | | | | | | | | | | | | | | | | | | | (back-port of commit 3f41ecb from 'release-7_6') Issue #38 (libatomic_ops). * src/atomic_ops/sysdeps/gcc/aarch64.h [(!__clang__ || AO_AARCH64_ASM_LOAD_STORE_CAS) && !AO_PREFER_GENERALIZED && __ILP32__] (AO_double_load, AO_double_load_acquire, AO_double_store, AO_double_store_release): Specify the size ("w") of arguments of the aarch64 instructions. * src/atomic_ops/sysdeps/gcc/aarch64.h [(!__clang__ || AO_AARCH64_ASM_LOAD_STORE_CAS) && __ILP32__] (AO_double_compare_and_swap, AO_double_compare_and_swap_acquire, AO_double_compare_and_swap_release, AO_double_compare_and_swap_full): Likewise. * src/atomic_ops/sysdeps/standard_ao_double_t.h [__aarch64__ && __ILP32__] (double_ptr_storage): Define as unsigned long long (instead of unsigned __int128).
* Travis CI: Put GNU S/W download base URL in a dedicated variableIvan Maidanski2018-10-291-3/+4
|
* Update AUTHORS file (add Tautvydas Zilys)Ivan Maidanski2018-10-291-0/+1
|
* Support UWP/arm64 targetTautvydas Zilys2018-10-291-1/+1
| | | | * src/atomic_ops.h [_MSC_VER && _M_ARM64]: Include msftc/x86_64.h.
* Fix typos in arm_v6.h, ia64.h, acquire_release_volatile.templateIvan Maidanski2018-10-297-15/+13
| | | | | | | | | | | | | | | | | | | | | | * src/atomic_ops/sysdeps/armcc/arm_v6.h [!AO_UNIPROCESSOR] (AO_nop_full): Fix typo ("a data memory barrier") in comment. * src/atomic_ops/sysdeps/icc/ia64.h (AO_char_load_acquire): Fix typo ("a ld.acq instruction") in comment. * src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.template (AO_XSIZE_load_acquire): Likewise. * src/atomic_ops/sysdeps/icc/ia64.h (AO_short_load_acquire, AO_int_load_acquire): Remove comment duplicating that in AO_char_load_acquire. * src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.template (AO_XSIZE_store_release): Fix typo ("a st.rel instruction") in comment. * src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h: Regenerate. * src/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h: Likewise. * src/atomic_ops/sysdeps/loadstore/int_acquire_release_volatile.h: Likewise. * src/atomic_ops/sysdeps/loadstore/short_acquire_release_volatile.h: Likewise.
* COPYING: sync with FSF's gpl-2.0.txtPavel Raiskup2018-08-061-21/+20
|
* Fix a typo in the overview section of READMEIvan Maidanski2018-08-061-1/+1
| | | | | | (fix of commit 147988d9) * README.md (Overview): Fix typo ("a number of") in documentation.
* Travis CI: Test also with mingw-w64 cross-compiler for 32-bit target (x86)Ivan Maidanski2018-03-061-0/+9
| | | | (back-port of commit 3a38ade from 'release-7_6')