Commit Graph

  • 7f17e3b9a3 Use #pragma intrinsic only with MSVC. Andrey Semashev 2014-08-24 00:02:16 +0400
  • c3469f4c2b Added myself as a maintainer and the author. Andrey Semashev 2014-08-18 18:52:43 +0400
  • 81f41afa6f Merge pull request #3 from danieljames/metadata Andrey Semashev 2014-08-18 18:50:21 +0400
  • db37088802 Add metadata file. Daniel James 2014-08-18 14:57:29 +0100
  • 4dee330229 Added support for types with non-trivial default constructors. Andrey Semashev 2014-07-07 22:40:41 +0400
  • 6a184d95dd Renamed union_cast.hpp -> casts.hpp. Andrey Semashev 2014-07-07 21:51:06 +0400
  • 00c2879066 Made sure that memory_order_consume is equivalent to memory_order_acquire on SPARC. Also make signal fences more strict in case of memory_order_consume since the standard requires them to be equivalent to thread fences except for thread synchronization instructions. Andrey Semashev 2014-07-07 21:48:53 +0400
  • 560e3c0465 Clarified the requirements on the types compatible with boost::atomic. Andrey Semashev 2014-06-10 00:21:31 +0400
  • 313497c6ae Added Windows version specification to fix compilation with MSVC. The code targets for Windows 2000. Andrey Semashev 2014-06-09 01:18:38 +0400
  • 0c9b1b3806 Reworked platform selection, fixed Windows backend. Andrey Semashev 2014-06-09 01:07:26 +0400
  • b44027a58e Removed dependency on Boost.Detail. Fixed compilation issues with MSVC 7.1 Andrey Semashev 2014-06-09 00:01:12 +0400
  • a6ec366f02 Fixed compilation failure due to a missing argument name. Andrey Semashev 2014-06-04 21:41:06 +0400
  • e0f038e92a Fixed compilation failure due to a missing argument name. Andrey Semashev 2014-06-04 21:38:15 +0400
  • 21e497c01b Corrected hw memory barriers for memory_order_consume. Andrey Semashev 2014-06-03 23:57:52 +0400
  • d4ee3a3047 Added a comment about the reason why we promote memory_order_consume to memory_order_acquire. Andrey Semashev 2014-06-03 23:30:21 +0400
  • e55bf17309 Changed memory_order_consume handling on ARM and PPC. Andrey Semashev 2014-06-01 20:03:53 +0400
  • abdce8f1bb Changed memory_order constant values to simplify checks for success/failure orders in compare_exchange methods. Fixed incorrect cas_failure_order_must_not_be_stronger_than_success_order check. Andrey Semashev 2014-06-01 02:10:44 +0400
  • a721aa468f Removed scratch argument for asm block in non-PIC mode. Andrey Semashev 2014-05-26 23:21:01 +0400
  • 97ae84a474 Adjusted the workaround for ldrexd/strexd instruction problem with register pairs allocation. The problem only affects ARMv6k in Thumb mode, so enable these instructions for ARM mode. Also don't base the decision on the compiler version, it is probably not relevant. Updated lockfree test to reflect the recent changes related to ARM backends. Andrey Semashev 2014-05-23 21:02:07 +0400
  • deddca6918 Fixed a few bugs with ARM assembler: incorrect comparisons in compare_exchange, compilation failures due to insufficient registers in some optimization modes. Eventually I had to disable 64-bit atomic ops for gcc 4.7 because it is not able to allocate register pairs suitable for ldrexd/strexd instructions. Andrey Semashev 2014-05-22 01:01:46 +0400
  • a71a23694b Fixed typo in a comment. Andrey Semashev 2014-05-21 00:36:43 +0400
  • 7197b188ac Another attempt to work around the problem with old binutils not supporting dmb arguments. Changed 64-bit operations so that the generated asm does not contain offsets in ldrexd and strexd instructions. Otherwise ARM assembler chokes. Andrey Semashev 2014-05-21 00:34:10 +0400
  • b8626e355b Moving memory_order.hpp to Boost.Atomic. Andrey Semashev 2014-05-20 21:59:22 +0400
  • 7f290018d2 Changed the dmb instruction argument in attempt to fix compilation with old binutils on QNX. Andrey Semashev 2014-05-18 19:03:55 +0400
  • 7fcb3b18b0 #9527. Fixed a typo in the docs. Andrey Semashev 2014-05-17 22:06:27 +0400
  • 76b78f2491 #9985. Added ebx saves and restores in asm blocks to avoid frame pointer clobbering, when frame pointer omission is disabled. Andrey Semashev 2014-05-17 21:58:59 +0400
  • b80d0ebe36 Documented the BOOST_ATOMIC_NO_ATOMIC_FLAG_INIT macro. Andrey Semashev 2014-05-17 20:07:52 +0400
  • b3ad87742a Merge redesigned library implementation from develop. Andrey Semashev 2014-05-17 19:33:39 +0400
  • 00c21f9978 Documented new feature test and configuration macros. Fixed disabled gcc atomic backend. Andrey Semashev 2014-05-17 19:20:51 +0400
  • 08d30a2320 Added missing include. Andrey Semashev 2014-05-11 23:14:47 +0400
  • 890313b8d7 Added missing include. Andrey Semashev 2014-05-11 23:13:58 +0400
  • 3a81a36bbe Removed no longer used files. Andrey Semashev 2014-05-11 20:28:12 +0400
  • 5c032ccf3a Added gcc Alpha backend. Completely untested. Andrey Semashev 2014-05-11 20:21:41 +0400
  • 5cb6e92ed0 Extracted common c86 DCAS code to a separate header. Andrey Semashev 2014-05-11 17:33:09 +0400
  • c319c6efd1 Enabled gcc atomic backend for Intel Compiler on Linux. Andrey Semashev 2014-05-11 17:00:00 +0400
  • c196e6da0c Fixed compilation of ARM backend. Simplified fences implementation. Andrey Semashev 2014-05-11 14:18:49 +0400
  • 684917a6fe Implemented gcc ARM backend. Some files renamed. Andrey Semashev 2014-05-11 02:36:15 +0400
  • 4e9632a669 Implemented gcc SPARCv9 backend. Andrey Semashev 2014-05-09 22:24:37 +0400
  • f53911de3d Implemented PorwerPC backend. Andrey Semashev 2014-05-09 20:57:02 +0400
  • d3af1bace9 Fixed compilation. Andrey Semashev 2014-05-09 19:04:41 +0400
  • 4cb51c6b76 Signed flag is now forwarded to the backends. Andrey Semashev 2014-05-09 18:53:06 +0400
  • 652e87b7e7 Added Linux ARM backend. Andrey Semashev 2014-05-07 22:21:04 +0400
  • 20dd8bd827 Implemented MSVC and Windows backends. Andrey Semashev 2014-05-04 23:41:16 +0400
  • 931a5dc2aa Improved assertion messages. Andrey Semashev 2014-05-04 05:22:59 +0400
  • 17cf91d8c9 Working on the library rewrite. Implemented gcc-x86 and gcc-sync backends. Andrey Semashev 2014-05-04 00:14:24 +0400
  • 0e5b641e0a Added workarounds for clang. Andrey Semashev 2014-04-20 19:03:56 +0400
  • 625c3c3a2e Compilation fixes. Added public headers for atomic_flag and atomic. Andrey Semashev 2014-04-20 17:26:42 +0400
  • f3d59ec1c1 Working on the new library design. Andrey Semashev 2014-04-19 22:25:02 +0400
  • 928bdea4f6 Merge branch 'develop' into decouple_interface_impl_rewrite Andrey Semashev 2014-03-23 16:07:37 +0400
  • 95c083ddfd Merge branch 'develop' Andrey Semashev 2014-03-23 15:52:17 +0400
  • e3536bec75 Hopefully, fixes #9447. Andrey Semashev 2014-03-23 15:15:56 +0400
  • 8bac8ab651 Merge branch 'develop' Andrey Semashev 2014-03-20 20:59:44 +0400
  • c56a76c084 Further attempts to work around clang bugs. Andrey Semashev 2014-03-19 19:07:30 +0400
  • 8a3e5b1466 Further attempts to work around clang compilation failures. Andrey Semashev 2014-03-18 21:25:33 +0400
  • 9e15e02528 Attempt to make Darwin clang compile the asm statement. Andrey Semashev 2014-03-17 19:36:39 +0400
  • 522279d1e7 Added missing fence functions for the clang 3.4 workaround. Also made atomic_flag copy and assignment to be deleted on C++11 compilers. Andrey Semashev 2014-03-16 21:19:42 +0400
  • b277b46c5f Removed incorrect constexpr qualifications from constructors with non-empty bodies. Andrey Semashev 2014-03-15 16:25:10 +0400
  • bf1898e2e6 Added a workaround for clang 3.4 bug: the compiler does not implement __atomic intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 macro. Andrey Semashev 2014-03-15 16:11:03 +0400
  • e04ffeb523 Merge branch 'develop' Andrey Semashev 2014-03-11 20:57:46 +0400
  • e4bde20f2e More compilation fixes for the case when 128-bit integers are not supported. Andrey Semashev 2014-02-28 12:43:11 +0400
  • 7b13e9cd24 Reworked capabilities definition. For all platforms, added BOOST_ATOMIC_INTn_LOCK_FREE macros that define the support for fixed sized integers. Other macros are deduced from the new ones, according to the native type sizes. Andrey Semashev 2014-02-09 16:12:00 +0400
  • 4efb93ba4d Ranamed header. Andrey Semashev 2014-02-09 13:38:52 +0400
  • 3dfdc9440c Merge branch 'develop' into decouple_interface_impl_rewrite Andrey Semashev 2014-01-27 11:30:39 +0400
  • 20747acd08 Corrected includes. Andrey Semashev 2014-01-27 11:30:04 +0400
  • 28f0c4c408 Merge branch 'develop' into decouple_interface_impl_rewrite Andrey Semashev 2014-01-27 01:03:31 +0400
  • 173eb4a64f Fixed compilation with MSVC. Andrey Semashev 2014-01-26 21:24:34 +0400
  • 7d768ca2e1 Extracted all capability macros to separate headers. Andrey Semashev 2014-01-26 19:39:04 +0400
  • 6f6614717e Added experimental support for ARM architecture on Windows. Completely untested. Andrey Semashev 2014-01-26 17:05:54 +0400
  • 6bb71fdd8f Fixed incorrect initialization of 128-bit values, when no native support for 128-bit integers is available. Andrey Semashev 2014-01-26 13:58:48 +0400
  • c9573230cb Merge branch 'develop' Andrey Semashev 2014-01-19 18:15:07 +0400
  • 44e9f3c1b7 Added a readme and a logo. Andrey Semashev 2014-01-19 18:13:36 +0400
  • c3e146f265 Merge pull request #2 from K-ballo/patch-2 Tim Blechmann 2014-01-13 10:45:56 -0800
  • 1ee6311ea4 Silence GCC -Wcast-qual warning Agustín Bergé 2014-01-13 12:31:22 -0600
  • 1fc5d75a98 Merged changes from develop. Andrey Semashev 2014-01-07 15:33:56 +0400
  • 9ded906200 The lock pool mutexes are now statically initialized. Fixes #9466. Andrey Semashev 2013-12-14 19:44:23 +0400
  • 6ef10a2d40 atomic: fix compilation and make use of gcc's cas-based implementation Tim Blechmann 2013-12-07 10:48:24 +0100
  • 94359f6aea Reverted commit 86144, which was misapplied and not required. The support for 64-bit atomic ops on 32-bit x86 was already present before. Andrey Semashev 2013-10-15 11:08:22 +0000
  • 9606e3f321 atomic: 64bit cas support for 32bit windows Tim Blechmann 2013-10-03 09:17:42 +0000
  • 799b66041d Merged changeset 85793 from trunk. Andrey Semashev 2013-09-26 21:14:24 +0000
  • 21fc47f109 Atomic: Remove obsolete MSVC version check. Stephen Kelly 2013-09-25 21:11:49 +0000
  • 799b822bab Fixed duplicate BOOST_ATOMIC_COMPILER_BARRIER macro definition. Extracted linking setup to a separate header so that including interlocked.hpp doesn't require linking with the library. Andrey Semashev 2013-09-19 20:04:47 +0000
  • 6dc50f685c Merged recent changes from trunk. Andrey Semashev 2013-09-08 13:55:41 +0000
  • dd3267bc43 Added macro checks for more ARM targets. The macros were taken from smart_ptr/detail/spinlock_gcc_arm.hpp. Andrey Semashev 2013-09-06 17:37:29 +0000
  • a629bd6308 Corrected macro name. Andrey Semashev 2013-09-05 18:28:42 +0000
  • 1bda03c997 Attempt to fix tests on MSVC Andrey Semashev 2013-09-05 17:01:50 +0000
  • b0886a7a78 Attempt to fix linking tests on Windows. Andrey Semashev 2013-09-04 08:46:22 +0000
  • b8cd09c50b Switched to boost::detail::lightweight_mutex instead of boost::mutex from Boost.Thread to avoid false dependencies on Boost.DateTime, Boost.Chrono and Boost.System. This should hopefully resolve linking problems on MinGW. Andrey Semashev 2013-08-31 11:21:50 +0000
  • 822d7655cf Merged recent changes from trunk. Andrey Semashev 2013-07-20 18:01:35 +0000
  • 6ab6038e99 Added a missing include. Andrey Semashev 2013-07-20 17:59:19 +0000
  • 2dc386ae88 Added missing includes and std:: qualification for ptrdiff_t. Andrey Semashev 2013-07-20 17:46:48 +0000
  • ffae0dc7a0 atomic: qnx/qcc compile fix Tim Blechmann 2013-07-12 17:49:20 +0000
  • 2327494330 Mentioned Intel compiler version in the comment. Andrey Semashev 2013-06-21 08:29:19 +0000
  • 1837dbe879 Disabled __atomic* intrinsics for Intel compiler. Andrey Semashev 2013-06-21 08:25:35 +0000
  • adefa136d0 Minor performance optimization and fixes of register constraints alternatives. Andrey Semashev 2013-06-17 20:07:13 +0000
  • 64dfb109b8 Resolved MSVC warnings about multiple operator= overloads. Andrey Semashev 2013-06-16 17:23:26 +0000
  • 5c4c16f436 Extracted intptr_t and uintptr_t types to cstdint.hpp. Refs #7823. Andrey Semashev 2013-06-16 15:02:27 +0000
  • 3869ce33cf Added tests for int128 atomicity. Andrey Semashev 2013-06-16 14:01:04 +0000
  • 88eb902af7 More docs updates. Andrey Semashev 2013-06-16 13:55:00 +0000
  • 5f9abc8544 Added docs for atomicity detection macros. Andrey Semashev 2013-06-16 13:46:39 +0000
  • 55e8b16a12 Fixed compilation with gcc 4.4. Optimized code for gcc older than 4.7 and also added support for 128-bit atomic ops. Completed transition to defaulted and deleted functions. Andrey Semashev 2013-06-16 13:40:11 +0000