History log of /haiku/src/system/libroot/os/arch/generic/generic_atomic.cpp
Revision Date Author Comments
# 721a07ac 25-Aug-2014 Paweł Dziepak <pdziepak@quarnos.org>

libroot: remove ATOMIC_FUNCS_ARE_SYSCALLS

GCC knows whether these functions need to be implemented using syscalls
(or more clever solutions like in Linux) and calls libgcc in such case.

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


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

os/arch: implement all atomic_*() using std::atomic<>

Time to get rid of some asm code. Surprisingly, it appears that
on x86[_64] the emitted code for atomic_test_and_get() isn't as efficient
as it could be, even with -O2, but cmpxchg is so expensive that this slight
difference shouldn't matter much.

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


# 7a402b99 15-Aug-2014 Arvind S Raj <sraj.arvind@gmail.com>

Reimplemented atomic_get_and_set in C++.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

* C++ code written by pdziepak.


# 721a07ac24df63af87afd8d52f5e08ec6566c9e0 25-Aug-2014 Paweł Dziepak <pdziepak@quarnos.org>

libroot: remove ATOMIC_FUNCS_ARE_SYSCALLS

GCC knows whether these functions need to be implemented using syscalls
(or more clever solutions like in Linux) and calls libgcc in such case.

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


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

os/arch: implement all atomic_*() using std::atomic<>

Time to get rid of some asm code. Surprisingly, it appears that
on x86[_64] the emitted code for atomic_test_and_get() isn't as efficient
as it could be, even with -O2, but cmpxchg is so expensive that this slight
difference shouldn't matter much.

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


# 7a402b996e3884f840d91b6602b9057a4bad69c4 15-Aug-2014 Arvind S Raj <sraj.arvind@gmail.com>

Reimplemented atomic_get_and_set in C++.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

* C++ code written by pdziepak.