#
1.29 |
|
07-Jun-2015 |
matt |
Back out last change; fixed in the correct place.
|
#
1.28 |
|
07-Jun-2015 |
joerg |
Require ARMv5TE to assemble.
|
#
1.27 |
|
17-May-2015 |
justin |
Move arm sync_* changes to Makefile.inc
|
#
1.26 |
|
14-Oct-2014 |
martin |
Provide C++ 2011 <atomic> support functions for hppa and arm.
|
#
1.25 |
|
13-Oct-2014 |
martin |
Move the and_{16,8}_nv sources into the right (libc only) block.
|
#
1.24 |
|
13-Oct-2014 |
martin |
Provide __sync_and_and_fetch_2 and __sync_and_and_fetch_1 for pre-ARMv6, they are needed for the C++ 2011 <atomic> stuff.
|
#
1.23 |
|
05-Jul-2014 |
joerg |
branches: 1.23.2; Provide a basic implementation of __atomic_load_* and __atomic_store_*, used by GCC and LLVM as backing for C11/C++11 atomics, if the hardware is not known to have corresponding features. Include it on ARM as LLVM and libc++ hit it when compiled for ARMv4.
|
#
1.22 |
|
04-Mar-2014 |
matt |
branches: 1.22.2; Don't export __sync* if _KERNEL || _STANDALONE are defined. (except if _RUMPKERNEL is defined)
|
#
1.21 |
|
03-Mar-2014 |
matt |
fix typo.
|
#
1.20 |
|
03-Mar-2014 |
matt |
Add atomic_sub_64.S
|
#
1.19 |
|
27-Feb-2014 |
matt |
Add atomic_cas_64 support for ARM EABI on V5TE and V5TEJ cpus. (strd is atomic).
|
#
1.18 |
|
21-Feb-2014 |
martin |
Missed one __sync_* op (or gcc4.8 does inline it, while 4.5 does not?)
|
#
1.17 |
|
22-Feb-2014 |
martin |
Move the __sync_* ops added in the previous change to a libc-only section
|
#
1.16 |
|
21-Feb-2014 |
martin |
Provide the missing __sync_* ops for earlier arm versions
|
#
1.15 |
|
27-Jan-2014 |
matt |
Add _atomic_cas_16_up and _atomic_cas_8_up
|
#
1.14 |
|
08-Nov-2013 |
matt |
Add support for the gcc __sync builtins. Note that these need earmv6 or later to get the ldrex/strex instructions
|
#
1.13 |
|
18-Aug-2013 |
matt |
Rework to allow thumb armv7 compilation. Add atomic_simplelock.c for thumb
|
#
1.12 |
|
06-Aug-2013 |
matt |
Only use MACHINE_ARCH if !_STANDALONE and CPPFLAGS/CFLAGS/CPUFLAGS don't contain -mcpu or -march
|
#
1.11 |
|
06-Aug-2013 |
matt |
Select ldrex/strex if ${MACHINE_ARCH:Mearmv[67]*}
|
#
1.10 |
|
11-Sep-2012 |
matt |
branches: 1.10.2; Add 64bit atomic ops for ARMv6+ (using ldrexd/strexd).
|
#
1.9 |
|
15-Aug-2012 |
matt |
Actually use the assembly version of the atomic function if compiling for armv6 or armv7 cpus. Use atomic_cas_ptr instead of _lock_cas so we pick up the assembly version when it's used.
|
#
1.8 |
|
03-Jan-2009 |
pooka |
branches: 1.8.8; 1.8.12; allow inclusion of atomic ops in librump
|
#
1.7 |
|
29-Sep-2008 |
ad |
branches: 1.7.8; Allow atomic ops to be built as part of libpthread.
|
#
1.6 |
|
29-Apr-2008 |
scw |
Implement _atomic_cas_up() in assembly code as the compiler cannot be trusted to generate fully restartable code sequences.
Addresses lib/38482 for ARM and m68000.
|
#
1.5 |
|
11-Feb-2008 |
ad |
branches: 1.5.4; Only build atomic ops for libkern/libc.
|
#
1.4 |
|
10-Feb-2008 |
ad |
Enable the atomic ops in userspace.
|
#
1.3 |
|
29-Nov-2007 |
ad |
branches: 1.3.4; Use the CAS-based inc/dec variants, since these CPUs don't have atomic add in hardware (does arm?).
|
#
1.2 |
|
29-Nov-2007 |
ad |
Atomic ops for arm.
|
#
1.1 |
|
18-Apr-2007 |
thorpej |
branches: 1.1.2; file Makefile.inc was initially added on branch thorpej-atomic.
|
#
1.1.2.2 |
|
25-Aug-2007 |
matt |
Add armv6 variants of atomic ops which use ldrex/strex. Add atomic_swap (all arm architectures) which uses swp and swpb. Add membar_ops which uses armv6 data {sync, memory} barrier. XXX let thorpej figure out the Makefile magic.
|
#
1.1.2.1 |
|
18-Apr-2007 |
thorpej |
Atomic ops implementation for ARM. Everything is built on top of atomic_cas_32(), which is itself a restartable atomic sequence.
|
#
1.3.4.3 |
|
22-Mar-2008 |
matt |
sync with HEAD
|
#
1.3.4.2 |
|
08-Jan-2008 |
matt |
sync with HEAD
|
#
1.3.4.1 |
|
29-Nov-2007 |
matt |
file Makefile.inc was added on branch matt-armv6 on 2008-01-09 01:20:51 +0000
|
#
1.5.4.1 |
|
18-May-2008 |
yamt |
sync with head.
|
#
1.7.8.2 |
|
15-Feb-2014 |
matt |
Add 64-bit atomic ops if ARMv6+
|
#
1.7.8.1 |
|
18-Dec-2013 |
matt |
Enable ldrex/strex based atomic ops on armv6/armv7
|
#
1.8.12.1 |
|
27-Nov-2012 |
matt |
Pull atomic ops from HEAD.
|
#
1.8.8.2 |
|
22-May-2014 |
yamt |
sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
#
1.8.8.1 |
|
30-Oct-2012 |
yamt |
sync with head
|
#
1.10.2.1 |
|
19-Aug-2014 |
tls |
Rebase to HEAD as of a few days ago.
|
#
1.22.2.1 |
|
10-Aug-2014 |
tls |
Rebase.
|
#
1.23.2.1 |
|
12-Nov-2014 |
snj |
Pull up following revision(s) (requested by martin in ticket #218): common/lib/libc/arch/arm/atomic/Makefile.inc: revision 1.24-1.26 common/lib/libc/arch/hppa/atomic/Makefile.inc: revision 1.13 common/lib/libc/arch/mips/atomic/Makefile.inc: revision 1.13 common/lib/libc/arch/sh3/atomic/Makefile.inc: revision 1.7 common/lib/libc/arch/sparc/atomic/Makefile.inc: revision 1.18 common/lib/libc/arch/vax/atomic/Makefile.inc: revision 1.7 common/lib/libc/atomic/atomic_and_16_nv_cas.c: revision 1.2 common/lib/libc/atomic/atomic_and_8_nv_cas.c: revision 1.2 common/lib/libc/atomic/atomic_c11_compare_exchange_cas_16.c: revision 1.1-1.2 common/lib/libc/atomic/atomic_c11_compare_exchange_cas_32.c: revision 1.1-1.2 common/lib/libc/atomic/atomic_c11_compare_exchange_cas_8.c: revision 1.1-1.2 common/lib/libc/atomic/atomic_cas_by_cas32.c: revision 1.4 common/lib/libc/atomic/atomic_op_namespace.h: revision 1.7 Add __sync_val_compare_and_swap_{1,2} aliases for _atomic_cas_{8,16} -- Provide __atomic_compare_exchange_N (as needed for the C11 2011 <atomic> ops) via the corresponding CAS. -- Hook __atomic_compare_exchange_N into vax libc. -- Provide __sync_and_and_fetch_2 and __sync_and_and_fetch_1 for pre-ARMv6, they are needed for the C++ 2011 <atomic> stuff. -- Add C++ 2011 <atomic> support functions. -- Move the and_{16,8}_nv sources into the right (libc only) block. -- Provide <atomic> C++ 2011 support functions for mips and sh3. -- Provide C++ 2011 <atomic> support functions for hppa and arm. -- Provide prototypes to fix build with clang.
|