History log of /haiku/src/build/libroot/atomic.cpp
Revision Date Author Comments
# 45615059 07-Nov-2015 Jonathan Schleifer <js@webkeks.org>

Add __clang__ to a few #ifdefs


# 2e2c9bd3 25-Aug-2014 Paweł Dziepak <pdziepak@quarnos.org>

os/support: implement atomic_*() using GCC builtin helpers

If GCC knows what these functions are actually doing the resulting
code can be optimized better what is especially noticeable in case of
invocations of atomic_{or,and}() that ignore the result. Obviously,
everything is inlined what also improves performance.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>


# 077c84eb 05-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel: atomic_*() functions rework

* No need for the atomically changed variables to be declared as
volatile.
* Drop support for atomically getting and setting unaligned data.
* Introduce atomic_get_and_set[64]() which works the same as
atomic_set[64]() used to. atomic_set[64]() does not return the
previous value anymore.


# a3ca7ebc 17-Jun-2007 Jérôme Duval <korli@users.berlios.de>

x86_64 changes :
added atomic*64() functions
use int32 instead of long


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21430 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17d0be4c 27-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed atomic_add().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20871 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f38eff6a 26-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a few more functions to the host platform BeOS compatibility layer:
* thread related functions,
* semaphore related functions,
* atomic_*() functions,
* readv_pos(), writev_pos().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20858 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2e2c9bd3d058dac3609103ca67011eaee14e9333 25-Aug-2014 Paweł Dziepak <pdziepak@quarnos.org>

os/support: implement atomic_*() using GCC builtin helpers

If GCC knows what these functions are actually doing the resulting
code can be optimized better what is especially noticeable in case of
invocations of atomic_{or,and}() that ignore the result. Obviously,
everything is inlined what also improves performance.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>


# 077c84eb27b25430428d356f3d13afabc0cc0d13 05-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel: atomic_*() functions rework

* No need for the atomically changed variables to be declared as
volatile.
* Drop support for atomically getting and setting unaligned data.
* Introduce atomic_get_and_set[64]() which works the same as
atomic_set[64]() used to. atomic_set[64]() does not return the
previous value anymore.


# a3ca7ebc40de58e0d8fdcca01bdf976896739d9a 17-Jun-2007 Jérôme Duval <korli@users.berlios.de>

x86_64 changes :
added atomic*64() functions
use int32 instead of long


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21430 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17d0be4cade1289bc5968ad3c880b7e14c69c9ac 27-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed atomic_add().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20871 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f38eff6aa2d14c0c49f12dc9818d6b23cf9e861d 26-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a few more functions to the host platform BeOS compatibility layer:
* thread related functions,
* semaphore related functions,
* atomic_*() functions,
* readv_pos(), writev_pos().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20858 a95241bf-73f2-0310-859d-f6bbb57e9c96