Commit Graph

  • 8c48149323 Disabled build jobs not supported by AppVeyor and Boost.Thread. Trying to find MinGW 32-bit compiler. Andrey Semashev 2017-09-25 12:02:28 +0300
  • a6443ca5b9 Updated test jobs to fix compilation. Andrey Semashev 2017-09-25 00:53:23 +0300
  • b8bc4f372b Fixed ADDRESS_MODEL setting. Andrey Semashev 2017-09-24 22:54:18 +0300
  • 31be8fe513 Added CI build scripts. Andrey Semashev 2017-09-24 22:50:08 +0300
  • de22c6a203 Added a link to a gcc bug in the comment about consume/acquire MO. Andrey Semashev 2017-09-20 13:50:33 +0300
  • d826930e86 Added support for returning values in flags from asm blocks for gcc x86 backend. Andrey Semashev 2017-09-02 19:30:55 +0300
  • f2aae8936a Avoid passing storage types via template parameters as it generates warnings about dropping attributes in gcc 7. Andrey Semashev 2017-09-02 19:17:27 +0300
  • 1972f1c96e Added support for returning values in flags from asm blocks in x86 DCAS. Andrey Semashev 2017-09-02 19:07:20 +0300
  • 87a904edf4 Updated DCAS compatibility with gcc 7 on x86-64. Andrey Semashev 2017-09-02 17:47:13 +0300
  • fbe1e8baf2 Revert "Revert "Use BOOST_MAY_ALIAS from Boost.Config."" Andrey Semashev 2017-08-26 15:10:15 +0300
  • 06c36dce48 Revert "Use BOOST_MAY_ALIAS from Boost.Config." Andrey Semashev 2017-08-24 13:17:44 +0300
  • 23d5770bde Minor docs formatting correction. Andrey Semashev 2017-08-06 22:09:41 +0300
  • b23afe4b0c Added docs for atomic_flag. Andrey Semashev 2017-08-06 22:04:26 +0300
  • 573732ea4a Added a workaround for libstdc++ not specializing numeric_limits for __int128 in strict mode. Andrey Semashev 2017-07-29 18:13:27 +0300
  • bbd32145ef Use BOOST_MAY_ALIAS from Boost.Config. Andrey Semashev 2017-07-29 16:54:52 +0300
  • a980d1c3ba Attempt to work around absent opereator<< for __int128 in some libstdc++ versions. Andrey Semashev 2017-07-20 23:46:54 +0300
  • 4467cfbd3b Documented the extra operations added as an extension of Boost.Atomic. Andrey Semashev 2017-07-19 22:05:20 +0300
  • c172831e5d Added a workaround for gcc on PPC not providing operator<< for __int128. Andrey Semashev 2017-07-17 01:15:04 +0300
  • 6a5928759a Added extra ops for PPC. Added 8 and 16-bit ops for PPC8+. Andrey Semashev 2017-07-17 00:39:20 +0300
  • c4f757d6bb Added extra ops implementation for ARM on gcc. Andrey Semashev 2017-07-16 18:15:18 +0300
  • a41cdf093e Extracted common hardware capabilities macros to separate headers. Andrey Semashev 2017-07-14 22:43:19 +0300
  • b2c6d37a1a Added byte/word-wide implementations of atomic ops on ARM. Andrey Semashev 2017-07-14 19:25:01 +0300
  • ffb529c4c3 Silence MSVC warnings. Andrey Semashev 2017-07-11 22:29:02 +0300
  • 5b28e12f1d Fixed tests to accommodate MSVC bugs and improved diagnostics. Andrey Semashev 2017-07-11 18:49:15 +0300
  • 4f38bb4f85 Added opaque variants of negate and complement ops for MSVC. Andrey Semashev 2017-07-10 21:49:41 +0300
  • 538b411c4a Added MSVC backend for extra operations. Andrey Semashev 2017-07-10 21:38:16 +0300
  • 3622ce85c7 Updated test to avoid signed overflows when add_and_test/sub_and_test is called on pointer types. Andrey Semashev 2017-07-05 00:37:51 +0300
  • d375cf0dff Modified 8 and 16-bit CAS loops to employ register renaming. Andrey Semashev 2017-07-04 23:28:01 +0300
  • e30c54754b Replaced fixed temporary register in CAS loops with a temporary variable Andrey Semashev 2017-07-04 22:52:46 +0300
  • 537656d67d Reworked extra operations definition. Andrey Semashev 2017-07-04 22:15:01 +0300
  • 6d7c0ec2ee Added generic implementation of extended ops. Reorganized platform macros. Andrey Semashev 2015-09-13 21:25:58 +0300
  • 65d0d557f1 Fixed a test constant, added a few more checks. Andrey Semashev 2015-09-08 22:44:04 +0300
  • 17ebc37de8 Fixed incorrect asm constraints. Also optimized 64-bit asm to allow 32-bit immediates. Andrey Semashev 2015-09-08 22:43:26 +0300
  • 158a114325 Corrected test constants. Andrey Semashev 2015-09-07 23:04:02 +0300
  • ce42659b6d Fixed compilation issues and incorrect use of cmpxchg. Added extended ops to the interface. Andrey Semashev 2015-09-07 22:59:38 +0300
  • add6f5640c Added tests for the new operations. Andrey Semashev 2015-09-07 22:58:48 +0300
  • 42024329d7 Corrected constant constraints for bit test ops. Andrey Semashev 2015-09-07 01:27:26 +0300
  • 5c554ee284 Preliminary version of extended atomic ops for x86. Andrey Semashev 2015-09-07 00:53:10 +0300
  • a6b01a8429 Disable cast-based implementation for MSVC because it generates broken code sometimes. Andrey Semashev 2017-07-11 22:28:28 +0300
  • b23c406f94 Converted Unicode characters in comments to ASCII. Andrey Semashev 2017-06-25 16:22:44 +0300
  • 4ee227c6f2 Simplified use of __has_attribute. Also use __may_alias__ instead of may_alias. Andrey Semashev 2017-05-29 12:02:04 +0300
  • 0786398120 Silence bogus gcc warnings about missing struct member initializers. Andrey Semashev 2017-05-29 11:49:27 +0300
  • be5ed8a1c5 Fixed compilation with gcc <= 4.9. Renamed BOOST_ATOMIC_DETAIL_STORAGE_MAY_ALIAS to BOOST_ATOMIC_DETAIL_STORAGE_TYPE_MAY_ALIAS as it is a more precise naming. Andrey Semashev 2017-05-27 18:11:06 +0300
  • 7919698b2a Changed is_lock_free() implementation to always use is_always_lock_free. Andrey Semashev 2017-05-25 13:38:39 +0300
  • b7dba02b73 In addition to compiler checks for may_alias support, use __has_attribute as well. Andrey Semashev 2017-05-25 12:54:34 +0300
  • ca151bedb4 Fixed warnings about left-shifting negative signed integers. Andrey Semashev 2017-05-22 15:21:22 +0300
  • 7c6917948d Use BOOST_INTEL_CXX_VERSION instead of __INTEL_COMPILER to use workarounds for compiler bugs present in Boost.Config. Andrey Semashev 2017-05-21 21:44:20 +0300
  • 11967cc8e2 Mark storage type capable of aliasing other types and simplify CAS when possible Andrey Semashev 2017-05-21 17:50:16 +0300
  • cf3c4a2d5a Fixed a typo. Andrey Semashev 2017-04-04 15:54:53 +0300
  • f1dc715e41 Added __ARM_ARCH_8A__ to the preprocessor check for ARM. Andrey Semashev 2017-04-04 15:53:18 +0300
  • 6d40529a58 Switch back to Boost.TypeTraits for integral traits because libstdc++ doesn't consider __int128 an integral type. Andrey Semashev 2017-04-03 15:11:30 +0300
  • 11c785768c Updated to reflect changes from P0558R1 accepted into C++17. Andrey Semashev 2017-04-01 18:29:26 +0300
  • a67cc1b055 Corrected register usage in x86 DCAS asm blocks. Andrey Semashev 2017-01-08 18:09:12 +0300
  • 2b6ef06b57 Added preliminary support for MSVC for ARM64 target. Andrey Semashev 2017-01-07 21:27:09 +0300
  • e6e6a04114 Changed taking address of the values involved in bitwise_cast to avoid gcc warnings. Andrey Semashev 2017-01-06 16:35:57 +0300
  • 41eac78e25 Merge branch 'develop' Andrey Semashev 2016-11-08 16:49:21 +0300
  • 07be21c7e8 Silenced some MSVC warnings. Andrey Semashev 2016-11-06 21:29:33 +0300
  • 8e30f37a1f Added workarounds for Oracle Studio 12.5 on x86. Andrey Semashev 2016-10-09 19:15:42 +0300
  • 5b30e196a6 Added is_always_lock_free static constant from C++17. Andrey Semashev 2016-10-09 17:33:16 +0300
  • 019610574b Add, and update, documentation build targets. Rene Rivera 2016-10-07 23:07:32 -0500
  • 836381dcd1 Added workarounds for Oracle Studio 12.5 on x86. Andrey Semashev 2016-10-09 19:15:42 +0300
  • 336a349b9f Added is_always_lock_free static constant from C++17. Andrey Semashev 2016-10-09 17:33:16 +0300
  • 512f1ac409 Add, and update, documentation build targets. Rene Rivera 2016-10-07 23:07:32 -0500
  • 9be3389f06 Updated test to refrect improved support for Oracle Studio and SPARC. Andrey Semashev 2016-09-17 13:30:26 +0300
  • cc9cff37af Documented BOOST_ATOMIC_NO_CMPXCHG8B and BOOST_ATOMIC_NO_MFENCE config macros. Andrey Semashev 2016-09-15 01:19:52 +0300
  • e450653451 Extracted x86 mfence detection to caps headers. Andrey Semashev 2016-09-15 01:05:51 +0300
  • dce87d3c0a Changes for better compatibility with Oracle Studio 12.5. Andrey Semashev 2016-09-15 00:46:26 +0300
  • 4274a78f46 Corrected typos that prevented compilation. Andrey Semashev 2016-09-14 20:36:12 +0300
  • ee4a80f477 Added a delimiter space between the header marker and Boost.Log image. Andrey Semashev 2016-08-19 13:39:12 +0300
  • ffe7710a90 Added a boostdoc target to unify Boost release docs building. Andrey Semashev 2016-01-06 21:04:08 +0300
  • 24586fe2aa Merge pull request #5 from jeremy-murphy/unused_params Tim Blechmann 2015-12-15 11:16:33 +0100
  • 0abd9bfd73 Fix some unused parameter warnings. Jeremy W. Murphy 2015-12-15 20:56:58 +1100
  • 430169a53c Removed union_cast in favor of memcpy-based implementation and renamed the cast to bitwise_cast. Use __builtin_mem* instead of regular function calls when possible. This saves inclusion of <cstring> and possibly generates better code when -fno-builtin is used. The net result of these changes is no UB that union_cast was introducing while hopefully retaining the same performance. Andrey Semashev 2015-12-02 20:04:10 +0300
  • c989d936c5 Renamed casts.hpp to bitwise_cast.hpp. Andrey Semashev 2015-12-02 18:36:49 +0300
  • 8bbf5e19db Corrected compiler check for BOOST_ATOMIC_DETAIL_NO_ASM_IMPLIED_ZERO_DISPLACEMENTS. Andrey Semashev 2015-11-08 17:24:30 +0300
  • 6e2d7b28de Restored old versions of DCAS operations that use an extra register for compatibility with old binutils, which apparently are used on OS X with gcc 4.2. Andrey Semashev 2015-11-04 15:25:12 +0300
  • 45289e534e Added a few notes to the README.md file. Andrey Semashev 2015-08-28 21:56:15 +0300
  • ec4738a8eb Workaround for MSVC-12 ICE. Andrey Semashev 2015-08-26 23:27:13 +0300
  • e3aac4bc65 Simplified memory references in assembler blocks which should reduce the typical number of used registers by one. Andrey Semashev 2015-08-23 03:27:37 +0300
  • 4462c1cdf4 Fixed compilation with gcc 4.4. Andrey Semashev 2015-08-23 02:05:35 +0300
  • 18fdcb1747 Fixed compilation errors with MSVC caused by using types with large alignment values as function arguments. Alignment is now explicitly specified for all storage types to avoid surprises. Optimized CAS-based exchange implementation on x86. Relaxed initial loads in CAS-based operations as this load is not required to be accurate. Andrey Semashev 2015-08-23 01:04:08 +0300
  • 6bb5b17108 Silenced MSVC warnings about 'this' being used in the constructor initialization list. Andrey Semashev 2015-08-22 20:47:56 +0300
  • f0f1ef228c atomic: fix compilation on msvc 8 / Windows CE / arm Tim Blechmann 2015-08-22 10:17:02 +0200
  • ff91811c1a Fixes #10994. Fixed compilation with gcc 4.4 when cmpxchg16b is used. Andrey Semashev 2015-08-17 23:27:37 +0300
  • b1bb36c5b3 Only use intptr_t when available. Only test integer overflows/underflows for unsigned integers (the behavior is undefined for signed ints anyway). This should silence compiler warnings as well. Andrey Semashev 2015-08-17 22:25:19 +0300
  • a8661d4cc2 Corrected memory barriers in store, load and thread_fence. Added indentation to the generated assembler code. Andrey Semashev 2015-08-15 00:29:43 +0300
  • 4162cb109f Corrected memory ordering of loads. Relaxed loads do not synchronize-with seq_cst stores, which allowed the test to fail. Also removed unnecessary loads that did not contribute to the test robustness and could have reduced it by issuing extra memory fences. Andrey Semashev 2015-08-14 15:03:35 +0300
  • e6a188d165 Experimental support for IBM XL C++ compilers for PowerPC. Andrey Semashev 2015-08-13 23:37:33 +0300
  • 7b1d722d94 Ported tests to core/lightweight_test.hpp. Andrey Semashev 2015-01-25 18:50:58 +0300
  • 427a757bbf Merge pull request #4 from jhunold/test_dependency Tim Blechmann 2015-01-14 16:17:50 +0100
  • 30f72c8d25 Add explicit dependency on Boost.Test Jürgen Hunold 2015-01-14 16:13:41 +0100
  • b8c91efe8f Made spinning on the lock less expensive. Andrey Semashev 2014-12-20 17:30:35 +0300
  • b77b0aff22 Made spinning on the lock less expensive. Andrey Semashev 2014-12-20 17:26:18 +0300
  • d6cc2c93c1 Avoid the lock padding member altogether if padding size is 0. Andrey Semashev 2014-12-20 17:05:24 +0300
  • fcff86225e Added workarounds for nvcc - don't use cc clobber and constraint alternatives in asm statements. Hopefully, should fix #10625. Andrey Semashev 2014-12-20 16:35:03 +0300
  • 6995a64181 Added missing curly braces to the lock pool initializers. This should fix compilation when the compiler does not support brace folding. Andrey Semashev 2014-12-20 15:51:21 +0300
  • fe8f1dc4e0 Use #pragma intrinsic only with MSVC. Andrey Semashev 2014-10-01 13:30:37 +0400
  • 5f6e9689a3 Silenced MSVC warnings about unused parameters. Andrey Semashev 2014-10-01 13:02:15 +0400
  • 415db70547 Added support for extending operations to GCC atomic backend. Andrey Semashev 2014-09-27 20:40:09 +0400
  • 8f10f20359 Use #pragma intrinsic only with MSVC. Andrey Semashev 2014-08-30 14:09:18 +0400