2008-02-11 Hans Boehm (Really Ian Wienand & Debian maintainers) * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_double_and_swap_double_full): Correctly account for ebx usage with PIC. 2008-01-09 Hans Boehm * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let double_ptr_storage default to long long; define everywhere. 2008-01-08 Hans Boehm (Really mostly Joerg Wagner) * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add compare_double_and_swap_double. 2008-01-06 Hans Boehm (Really mostly Joerg Wagner) * src/atomic_ops/generalize.h: Add test_and_set generalizations, Add AO_double_compare_and_swap generalizations. * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file. * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7. * src/atomic_ops/sysdeps/gcc/x86.h, src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add compare_double_and_swap_double, commented out for msftc. * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add double_ptr_storage field. 2008-01-03 Hans Boehm (Merge from separate atomic_ops tree) * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for double-width cas, and fix its implementation. * doc/README.txt: Clarify use of _full. Add more warnings about data dependencies. 2008-01-02 Hans Boehm * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add %X1 modifier to support indexed addressing. 2007-07-23 Hans Boehm (really Jim Marshall) * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define for VC++6. 2007-07-05 Andreas Tobler * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include powerpc.h. 2007-06-26 Hans Boehm (really Luca Barbato) * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add 64-bit version. 2007-06-13 Hans Boehm * src/atomic_ops.h: include stddef.h 2007-06-06 Hans Boehm * src/atomic_ops/sysdeps/msftc/x86_64.h: New file. * src/atomic_ops.h: Add test for msftc/x86_64.h. * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64. * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h. * src/atomic_ops/sysdeps/Makefile.in: Regenerate. * src/atomic_ops/sysdeps/aligned_atomic_load_store.h, src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h, src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Replace unsigned long cast with size_t. 2007-05-17 Hans Boehm * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full): Add cast for return. 2007-05-14 Hans Boehm doc/README.txt: Update to reflect C++0x effort. 2007-05-07 Hans Boehm (with help from Philipp Zambelli) * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence is present. * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct oldval type. 2006-11-09 Earl Chew (Agilent) * msftc/x86.h: Follow Microsoft documentation and include windows.h. [1.2 release] 2006-07-11 Hans Boehm * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos. 2006-03-28 Earl Chew (Agilent) * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr. * src/atomic_ops/sysdeps/msftc/x86.h: Use new intrinsics available in MSVC 2003 and MSVC 2005. Use inline assembler to generate mfence and byte sized xchg Use correct prototype for InterlockedCompareExchange. * src/atomic_ops.h: Add test for __PPC__ . * tests/run_parallel.inc: Add simple VxWorks support. * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes to silence compiler warnings. 2006-1-13 Hans Boehm *src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support. *src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full. 2005-11-4 Hans Boehm *src/atomic_ops/sysdeps/gcc/ia64.h: Include all_acquire_release_volatile.h, instead of just the pointer-sized version. *src/atomic_ops/sysdeps/gcc/ia64.h: Include all_acquire_release_volatile.h and all_atomic_load_store.h, instead of just the pointer-sized versions. [1.1 release] 2005-09-27 Hans Boehm *src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm. *src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from ordered_except_wr.h. *src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h instead of duplicating it. *src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h. 2005-09-16 Hans Boehm *src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set definition with one that might actually work. (Thanks to Kazu Hirata and Paul Brook.) 2005-08-01 Hans Boehm *src/atomic_ops/Makefile.am: Change function naming from "byte" to "char" (again). [1.0 release] 2005-03-21 Hans Boehm Fix various acquire_release_volatile.h files to reflect the fact that both icc and gcc seem to reorder ordinary memory accesses around volatile accesses early in the compilation. Modify the acquire release test to catch this problem (with high probablity, and only on a multiprocessor). 2005-03 Hans Boehm Fixes for recently introduced bugs. Update x86 and x86-64 assembly syntax to deal with complaints by some recent gcc versions. 2005-02 Hans Boehm Added libatomic_ops_gpl library with support for mostly lock-free stack and malloc(). 2005-01 Ian Wienand , Al Stone , Hans Boehm Use autoconf, automake, starting with code from Debian package. Don't use libtool. 2005-01 Hans Boehm * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others: Change most platforms to use byte-wide test-and-set locations. 2005-01 Hans Boehm * ao_t_is_int.h: Add to trivially support int-wide operations on platforms with int-sized pointers. 2004-12 Hans Boehm * gcc/powerpc.h: First serious attempt to support PowerPC (with help from Maged Michael and others). 2004-12 Hans Boehm * sunc/sparc.[hS]: Added minimal supprt for the Sun SPARC compiler. * atomic_ops_sysdeps.S: Add support for platforms that require out-of-line assmebly code. 2004-10 Hans Boehm More work on char, short, int sized data. Add both compare_double_and_swap_double and compare_and_swap_double. Typically each platform will provide at most one of these. 2004-07-02 Ranko Zivojnovic Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full. 2004-06 Hans Boehm Start to add atomic_ops primitives for different sized data. 2003-12-18 Hans Boehm * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h: Fix support for ecc on IA64. Remove compiler_barrier workaround for gcc 3.4 and later. 2003-12-17 Hans Boehm * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h}, atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops, Makefile.atomic_ops.msft, atomic_ops.h: Add initial support for atomic_ops for VC++/Windows/X86 and HP/UX with the HP compiler on PA_RISC and IA64. 2003-12-09 Hans Boehm * many: Install under "atomic_ops" instead of "ao". Change atomic_ops include file structure. Auxiliary include files are all under include/atomic_ops. Fix (hopefully) "make dist" in atomic_ops distribution. Renamed various types to end in _t, though the old versions are still defined for backward compatibility. 2003-12-08 Carlos O'Donell * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align helper macros. AO_test_and_set_full uses helper macros. Started sometime after version 0.4 release. Currently the format is informal. Eventually should become more GNU-like.