X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=gc-7.2%2Flibatomic_ops%2FChangeLog;fp=gc-7.2%2Flibatomic_ops%2FChangeLog;h=04735d5d75ed890c4773a911478dba4e4218aa0c;hb=324587ba93dc77f37406d41fd2a20d0e0d94fb1d;hp=0000000000000000000000000000000000000000;hpb=2a4ea609491b225a1ceb06da70396e93916f137a;p=hs-boehmgc.git diff --git a/gc-7.2/libatomic_ops/ChangeLog b/gc-7.2/libatomic_ops/ChangeLog new file mode 100644 index 0000000..04735d5 --- /dev/null +++ b/gc-7.2/libatomic_ops/ChangeLog @@ -0,0 +1,1489 @@ +[7.2d] + +2012-08-09 Ivan Maidanski + + * README: Change version to 7.2d (rev. D). + +2012-08-01 Ivan Maidanski + + * src/atomic_ops.h (AO_compiler_barrier): Add parentheses and cast to + void. + +2012-07-12 Ivan Maidanski + + * config.guess: Regenerate (by autoreconf -vif using autoconf-2.68, + automake-1.11.1 and libtool-2.4). + * config.sub: Likewise. + +2012-07-04 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/x86.h + (AO_compare_double_and_swap_double_full): Use EDI register for + "new_val1" argument in PIC mode only for GCC 4.3+ to workaround + a problem with older compiler versions (e.g., GCC 4.2.1 [FreeBSD]) + that do not recognize 'D' as a valid register specification; update + comment. + +2012-07-01 Ivan Maidanski + + * src/atomic_ops/generalize-small.template + (AO_XSIZE_fetch_and_add_full, + AO_XSIZE_fetch_and_add_acquire, AO_XSIZE_fetch_and_add_release): + Fix type of function result by adding + 'unsigned' to XCTYPE. + * src/atomic_ops/generalize-small.h: Regenerate. + +[7.2] + +2012-05-11 Ivan Maidanski + + * configure.ac, README: Bump version to 7.2 (final). + * configure: Regenerate. + +2012-05-01 H.J. Lu + + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_fetch_and_add_full, + AO_and_full, AO_or_full, AO_xor_full, AO_compare_and_swap_full): + Remove 'q' suffix in asm instruction. + +2012-04-16 H.J. Lu + + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_T_IS_INT): Defined + for x32. + +2012-03-28 Ivan Maidanski + + * configure.ac (PICFLAG): Adjust AC_MSG_CHECKING message; report + "none" result if no -fPIC is needed (for Cygwin/MinGW); determine + whether GCC -fPIC option causes __PIC__ macro definition; pass + -D __PIC__ to PICFLAG (instead of CFLAGS) only if not defined + automatically in case -fPIC specified; update comment. + +2012-03-26 Ivan Maidanski + + * src/atomic_ops/sysdeps/standard_ao_double_t.h: Do not use __m128 + if GCC pre-v4 (at least, xmmintrin.h is missing in gcc-3.4.3-x86_64 + included in Solaris 10 distribution). + +2012-03-26 Ivan Maidanski + + * src/atomic_ops/sysdeps/standard_ao_double_t.h: Fix a typo in + comment. + +2012-03-19 Ivan Maidanski + + * configure: Regenerate. + * Makefile.in: Likewise. + +2011-08-14 Petter Urkedal + + * atomic_ops.pc.in -> pkgconfig/atomic_ops.pc.in: Moved. + * pkgconfig/atomic_ops-uninstalled.pc.in: Added developer version. + * configure.ac, Makefile.am: Update accordingly. + +2011-08-04 Ivan Maidanski (really Petter Urkedal) + + * atomic_ops.pc.in: new file. + * Makefile.am (pkgconfigdir, pkgconfig_DATA): new items. + * configure.ac (AC_CONFIG_FILES): add atomic_ops.pc. + * configure, Makefile.in: Regenerate. + +2012-03-07 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/x86.h + (AO_compare_double_and_swap_double_full): Use EDI register for + "new_val1" argument instead of a memory operand and use XCHG assembler + instruction instead of push/pop in case of PIC mode (to workaround + a bug in GCC 4.6.1); update the comment. + +2012-03-07 Ivan Maidanski + + * src/atomic_ops_stack.c (AO_stack_push_release): Make "cptr" local + variable volatile to workaround a bug in clang-1.1/x86 compiler; add + comment. + +2012-03-07 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/x86.h + (AO_compare_double_and_swap_double_full): Fix argument name in the + comment. + * src/atomic_ops/sysdeps/sunc/x86.h + (AO_compare_double_and_swap_double_full): Likewise. + +2012-03-04 Ivan Maidanski + + * src/atomic_ops_malloc.h (AO_malloc_enable_mmap): Fix a typo in the + comment. + +2012-01-19 Ivan Maidanski + + * tests/test_atomic.c (main): Put "void" keyword into the arguments + specification of the function prototype. + * tests/test_stack.c (main): Likewise. + +2011-12-16 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h (__ARM_ARCH_7__, __ARM_ARCH_7A__): + Recognize to override __ARM_ARCH_5xx__ macros (since Android NDK GCC + defines both for armv7); update comment. + +2011-11-29 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/hexagon.h: Include generalize.h file + before ao_t_is_int.h one. + * src/atomic_ops/sysdeps/gcc/ia64.h: Likewise. + * src/atomic_ops/sysdeps/hpc/ia64.h: Likewise. + +2011-11-03 Ivan Maidanski + + * src/atomic_ops/generalize-small.template + (AO_XSIZE_fetch_and_add_full, AO_XSIZE_fetch_and_add_acquire, + AO_XSIZE_fetch_and_add_release): Change return type from AO_t to + XCTYPE. + * src/atomic_ops/generalize-small.h: Regenerate. + +2011-10-24 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/mips.h (AO_compare_and_swap_full): + Change "result" local variable type from AO_t to int. + * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_compare_and_swap_full): + Likewise. + +2011-10-24 Ivan Maidanski + + * tests/test_atomic_include.h: Regenerate. + +2011-10-24 Ivan Maidanski + + * tests/test_atomic_include.template (test_atomicXX): Add action for + the missing AO_compare_and_swap primitive. + +2011-10-21 Ivan Maidanski + + * src/atomic_ops.c (init_lock): Define only unless AO_USE_NO_SIGNALS. + +2011-10-21 Ivan Maidanski + + * doc/README.txt: Fix a typo. + +2011-10-21 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/alpha.h (AO_compare_and_swap): Cast + returned value to int. + +2011-10-17 Ivan Maidanski + + * src/atomic_ops/sysdeps/Makefile.in: Regenerate. + +2011-10-17 Ivan Maidanski (really Thorsten Glaser) + + * src/atomic_ops/sysdeps/gcc/m68k.h (AO_test_and_set_full): Cast the + returned value. + +2011-10-15 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/s390.h (AO_compare_and_swap_full): + Change return from AO_t to int. + * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_compare_and_swap_acquire, + AO_compare_and_swap_release, AO_compare_and_swap_full): Likewise. + +2011-10-11 Ivan Maidanski (really Linas Vepstas) + + * src/atomic_ops/sysdeps/Makefile.am (nobase_private_HEADERS): Add + hexagon.h. + * src/atomic_ops.h: Include hexagon.h file. + * src/atomic_ops/sysdeps/gcc/hexagon.h: New file. + +2011-09-21 Ivan Maidanski + + * src/atomic_ops.c + (AO_non_posix_implementation_is_entirely_in_headers): Make external. + +2011-09-21 Ivan Maidanski + + * configure: Regenerate. + * tests/Makefile.in: Ditto. + * tests/test_atomic_include.h: Ditto. + +2011-09-21 Ivan Maidanski + + * configure.ac (PICFLAG, THREADDLLIBS): Define as empty for MinGW. + * configure.ac (have_pthreads): New definition (set to true unless + MinGW). + * configure.ac (HAVE_PTHREAD_H): New AM conditional (based on + have_pthreads value). + * tests/Makefile.am (test_atomic_pthreads_SOURCES, + test_atomic_pthreads_CPPFLAGS, test_atomic_pthreads_LDADD): Define + only if HAVE_PTHREAD_H. + * tests/Makefile.am (TESTS): Don't include test_atomic_pthreads unless + HAVE_PTHREAD_H. + * tests/Makefile.am (check_PROGRAMS): Define to TESTS value. + +2011-09-21 Ivan Maidanski + + * configure.ac (PICFLAG): Set to -fPIC if GCC but not Gygwin. + +2011-09-21 Ivan Maidanski + + * tests/test_malloc.c (LIST_LENGTH, LARGE_OBJ_SIZE): Define to + a smaller value unless HAVE_MMAP. + +2011-09-21 Ivan Maidanski + + * tests/test_malloc.c (cons, run_one_test): Call exit with a non-zero + code (instead of abort) if out of memory. + * tests/test_stack.c (add_elements): Likewise. + * tests/test_stack.c (main): Use a distinct exit code if a thread + creation failed. + +2011-09-15 Ivan Maidanski + + * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo (replace AO_FORCE_CAS + with AO_REQUIRE_CAS in a comment). + +2011-09-08 Ivan Maidanski (really Petter Urkedal) + + * src/Makefile.am, tests/Makefile.am: Set compiler include paths + to $(top_builddir)/src and $(top_srcdir)/src. + * src/Makefile.in: Regenerate. + * tests/Makefile.in: Ditto. + +2011-07-14 Ivan Maidanski + + * tests/list_atomic.template (list_atomicXX): Remove "addr" local + variable (use "&val" instead); initialize "newval" and "oldval" + local variables; rename "tsaddr" local variable to "ts" one. + * tests/list_atomic.template (list_atomicXX): Fix + AO_test_and_setXX call (pass address instead of value). + * tests/list_atomic.template: Expand all tabs to spaces; remove + trailing spaces at EOLn. + * tests/run_parallel.inc: Ditto. + * tests/test_atomic.c: Ditto. + * tests/list_atomic.c: Regenerate. + * tests/run_parallel.inc (AO_PTRDIFF_T): New macro. + * tests/run_parallel.inc (tramp): Cast between pointer and integer + types via casting to AO_PTRDIFF_T. + * tests/test_atomic.c (add1sub1_thr, acqrel_thr): Ditto. + * tests/run_parallel.inc (run_parallel): Adjust printf format + specifiers for DWORD parameters. + * tests/test_stack.c: Skip test if no pthreads. + +2011-06-27 Ivan Maidanski (really Jeremy Huddleston) + + * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full): + Explicitly cast 0xff to unsigned char (otherwise LLVM v2.7 GAS + reports an error); don't recognize AO_XCHGB_RET_WORD. + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full): + Ditto. + +2011-06-15 Ivan Maidanski + + * configure.ac, README: Change to version 7.2alpha7. + * configure: Regenerate. + +[7.2alpha6] + +2011-06-14 Ivan Maidanski + + * configure.ac, README: Change to version 7.2alpha6. + * configure: Regenerate. + +2011-06-07 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, AO_load): Do not + define for pre-ARMv6 directly (revert part of the previous + commit). + * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set, + AO_test_and_set_full): Refine the comment. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Define + SWP-based implementation at the end of file (if none of + AO_test_and_set functions are defined previously). + * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Remove + SWP-based implementation (revert part of the previous commit). + * src/atomic_ops/sysdeps/gcc/arm.h (AO_store): Remove redundant + definition at the file end (revert part of the previous commit). + +2011-06-07 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h: Handle ARMv6M architecture. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Force "swp" + instruction usage (instead of ldrex/strex) if AO_FORCE_USE_SWP; + add a comment. + * src/atomic_ops/sysdeps/gcc/arm.h + (AO_compare_double_and_swap_double): Handle ARMv7EM architecture + (similar to ARMv7M). + * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set, AO_nop_full, + AO_load, AO_store): Define at the end of file (in case not defined + previously). + +2011-06-07 Ivan Maidanski + + * src/atomic_ops/generalize.h: Reformat code. + * src/atomic_ops/generalize.h (AO_test_and_set_acquire): Fix + return type. + * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_test_and_set): Ditto. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Ditto. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Add + a comment (about SWP instruction). + +2011-06-06 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM, + AO_THUMB_RESTORE_MODE): Use single-digit labels (to workaround + a bug in GCC v4.2.1 which reports "garbage following instruction" + otherwise). + * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Use "IT" + instruction only for Thumb-2 mode. + +2011-06-06 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM, + AO_THUMB_RESTORE_MODE, AO_THUMB_SWITCH_CLOBBERS): Define as empty + for Thumb-2 mode. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_store, AO_test_and_set, + AO_fetch_and_add, AO_fetch_and_add1, AO_fetch_and_sub1, + AO_compare_and_swap, AO_compare_double_and_swap_double): Remove + unnecessary "memory" keyword from the list of clobbered registers + (revert part of the previous commit). + * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Add + a comment for "IT" instruction. + * src/atomic_ops/sysdeps/gcc/arm.h + (AO_compare_double_and_swap_double): Don't define on the + architectures where unimplemented; add a comment; replace return + (in the loop) statement with break. + +2011-06-06 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM, + AO_THUMB_RESTORE_MODE, AO_THUMB_SWITCH_CLOBBERS): Define new + macro (to switch temporarily CPU mode to ARM in inline assembler + if compiling in the Thumb mode and to restore it back on leave). + * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, AO_store, + AO_test_and_set, AO_fetch_and_add, AO_fetch_and_add1, + AO_fetch_and_sub1, AO_compare_and_swap, AO_test_and_set_full): + Enable compilation in the Thumb mode (use AO_THUMB_GO_ARM, + AO_THUMB_RESTORE_MODE and AO_THUMB_SWITCH_CLOBBERS macros). + * src/atomic_ops/sysdeps/gcc/arm.h (AO_store, AO_test_and_set, + AO_fetch_and_add, AO_fetch_and_add1, AO_fetch_and_sub1, + AO_compare_and_swap, AO_compare_double_and_swap_double): Add + "memory" to the list of clobbered registers. + +2011-06-06 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h: Reformat code. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, + AO_test_and_set_full): Add assembler comment containing the + function name. + +2011-06-03 Ivan Maidanski + + * tests/test_malloc.c (run_one_test): Test AO_malloc() result + (if out of memory then print the message and abort). + * tests/test_stack.c (add_elements): Ditto. + +2011-06-03 Ivan Maidanski + + * src/atomic_ops/generalize.h (AO_HAVE_or_full): Add missing + definition. + * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_HAVE_nop_write): + Fix macro name. + * src/atomic_ops/sysdeps/read_ordered.h (AO_HAVE_nop_read): Ditto. + * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_store_release): + Ditto. + +2011-06-03 Ivan Maidanski + + * src/atomic_ops/generalize-small.template + (AO_HAVE_XSIZE_fetch_and_add_full): Add missing definition. + * src/atomic_ops/generalize-small.template: Reformat code. + * src/atomic_ops/generalize-small.h: Regenerate. + +2011-06-03 Ivan Maidanski + + * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Remove + blank line between AO_func and AO_HAVE_func definitions. + * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/generic_pthread.h: Ditto. + * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/ordered.h: Ditto. + * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto. + * src/atomic_ops/sysdeps/read_ordered.h: Ditto. + * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto. + * src/atomic_ops/sysdeps/gcc/arm.h: Ditto. + * src/atomic_ops/sysdeps/gcc/cris.h: Ditto. + * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto. + * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto. + * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto. + * src/atomic_ops/sysdeps/gcc/mips.h: Ditto. + * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto. + * src/atomic_ops/sysdeps/gcc/s390.h: Ditto. + * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto. + * src/atomic_ops/sysdeps/gcc/x86.h: Ditto. + * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto. + * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto. + * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto. + * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto. + * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto. + * src/atomic_ops/sysdeps/msftc/x86.h: Ditto. + * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto. + * src/atomic_ops/sysdeps/sunc/sparc.h: Ditto. + * src/atomic_ops/sysdeps/sunc/x86.h: Ditto. + * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto. + * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Reformat + comment. + * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/ordered.h: Ditto. + * src/atomic_ops/sysdeps/gcc/arm.h: Ditto. + * src/atomic_ops/sysdeps/test_and_set_t_is_char.h: Remove file + tail blank lines. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Don't + define for ARMv2. + * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire, + AO_test_and_set, AO_compare_and_swap): Merge adjacent definitions. + * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_store_release): + Define. + * src/atomic_ops/sysdeps/sunc/sparc.h: Expand all tabs to spaces; + remove trailing spaces at EOLn. + +2011-06-02 Ivan Maidanski + + * tests/test_malloc.c (main): Remove unused "exper_n" local + variable. + * tests/test_stack.c (run_one_test): Remove unused "aux" local + variable. + +2011-06-01 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h + (AO_compare_double_and_swap_double, + AO_HAVE_compare_double_and_swap_double): Define only starting from + ARMv6K. + * src/atomic_ops/sysdeps/gcc/arm.h + (AO_compare_double_and_swap_double): Fix function name in + assembler code; replace while (1) loop with "do-while". + +2011-06-01 Ivan Maidanski + + * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): + Specify "%b0" (instead of "%0") in "xchg" instruction (to + workaround a bug in Sun C 5.11). + * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): + Ditto. + +2011-06-01 Ivan Maidanski + + * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for + Sun C compiler (call "release" variant of AO_store). + +2011-06-01 Ivan Maidanski + + * configure.ac (_PTHREADS): New template (used for NetBSD). + * configure.ac (THREADDLLIBS): New macro. + * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD, + test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS + instead of "-lpthread". + * configure: Regenerate. + * Makefile.in: Ditto. + * doc/Makefile.in: Ditto. + * src/Makefile.in: Ditto. + * src/atomic_ops/Makefile.in: Ditto. + * src/atomic_ops/sysdeps/Makefile.in: Ditto. + * src/config.h.in: Ditto. + * tests/Makefile.in: Ditto. + +2011-05-30 Ivan Maidanski + + * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not + define the corresponding macro. + * configure.ac: Don't check for GCC twice. + * configure: Regenerate. + * tests/test_malloc.c (DEFAULT_NTHREADS): New macro. + * tests/test_malloc.c (run_one_test): Refine printed message (in + case of HAVE_MMAP). + * tests/test_malloc.c (main): Use DEFAULT_NTHREADS. + * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer. + * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS, + OPT_MAP_ANON): New macro. + * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as + file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON). + * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON, + GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open() + returned value. + +2011-05-11 Ivan Maidanski + + * tests/test_malloc.c: Expand all tabs to spaces; remove trailing + spaces at EOLn. + * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and + LARGE_OBJ_SIZE, respectively. + * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH, + LARGE_OBJ_SIZE): Do not define unless undefined. + * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST + macro. + +2011-05-10 Ivan Maidanski + + * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update + comment. + * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h, + list_atomic.c. + * tests/Makefile.am: Remove trailing spaces at EOLn. + * tests/Makefile.in: Regenerate. + +2011-05-10 Ivan Maidanski + + * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define + unless undefined. + * tests/test_stack.c: Expand all tabs to spaces. + * tests/test_atomic_include.h: Ditto. + * tests/test_stack.c (main): Free pop'ed elements. + * tests/test_atomic_include.h (test_atomic, test_atomic_release, + test_atomic_acquire, test_atomic_read, test_atomic_write, + test_atomic_full, test_atomic_release_write, + test_atomic_acquire_read): Remove prototype. + +2011-04-22 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for + asm; remove redundant trailing ';'. + +2011-04-11 Ivan Maidanski (really Jim Meyering) + + * doc/README.txt: Remove doubled words in comments. + +2011-03-18 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6 + ARM chips instead of all the currently existing v6+ ones. + +2011-03-13 Ivan Maidanski + + * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment; + expand all tabs to spaces. + * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full): + Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug). + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full): + Ditto. + +2011-02-19 Ivan Maidanski + + * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl. + * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in + a conditional expression) to prevent a compiler warning. + * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove + trailing spaces at EOLn. + +2011-02-19 Ivan Maidanski + + * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and + AO_USE_NANOSLEEP for NaCl. + +2011-02-19 Ivan Maidanski + + * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68, + automake-1.11.1 and libtool-2.4). + * configure: Ditto. + +2011-02-09 Ivan Maidanski + + * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New + macros. + * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply + AO_USE_NO_SIGNALS. + * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS. + * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP. + * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code. + * src/atomic_ops.c (AO_pause): Use nanosleep() if + AO_USE_NANOSLEEP. + * src/atomic_ops.c (all_sigs, initialized, + AO_compare_and_swap_emulation, + AO_compare_double_and_swap_double_emulation): Use + AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS. + +2011-01-07 Ivan Maidanski + + * src/.cvsignore: Add more auto-generated files. + * tests/.cvsignore: Ditto. + * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store, + AO_compare_double_and_swap_double): Reformat code. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, + AO_compare_double_and_swap_double): Ditto. + * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap): + Produce "it eq" instruction only for Thumb mode. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto. + +2010-11-23 Ivan Maidanski (really Michael Hope) + + * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap): + Insert "it eq" just before "strexeq" (required for Thumb-2 mode, + ignored in ARM mode). + * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto. + +2010-09-15 Ivan Maidanski (with input from Gregory Farnum) + + * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__. + * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__. + * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is + included. + * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS + is defined but emul_cas.h has not been included. + * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo. + +2010-08-14 Ivan Maidanski + + * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67, + automake-1.11.1 and libtool-2.2.8). + * configure: Ditto. + +2010-08-14 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment + with ANSI C one. + +2010-05-30 Ivan Maidanski (really Bradley Smith) + + * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use + "register long" (instead of "int") for "ret" variable. + * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace + with AO_test_and_set_full (same for AO_HAVE_test_and_set). + * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full): + New function implemented. + +2010-05-22 Ivan Maidanski + + * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS): + Add "gcc/avr32.h". + * src/atomic_ops/sysdeps/Makefile.in: Regenerate. + +2010-05-21 Ivan Maidanski (really Bradley Smith) + + * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h). + * src/atomic_ops/sysdeps/gcc/avr32.h: New file. + +2010-04-29 Ivan Maidanski + + * doc/README_malloc.txt: Fix a typo. + * doc/README_stack.txt: Ditto. + +2010-02-25 Ivan Maidanski (really Bruce Mitchener) + + * .cvsignore: New file. + * doc/.cvsignore: Ditto. + * src/.cvsignore: Ditto. + * src/atomic_ops/.cvsignore: Ditto. + * src/atomic_ops/sysdeps/.cvsignore: Ditto. + * tests/.cvsignore: Ditto. + +2010-02-19 Ivan Maidanski (mostly really Patrick Marlier) + + * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full): + Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN. + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full): + Ditto. + * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined + if GCC v4.2+ or Intel compiler v11.1+ (only for amd64). + * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel + compiler in GCC compatible mode (only for x86 and amd64). + +2010-02-18 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check + for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on + all x86_64/amd64 chips); remove the comment. + * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only + if AO_ASM_X64_AVAILABLE. + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full): + Use built-in __sync_bool_compare_and_swap() if GCC v4.2+. + +2010-02-17 Ivan Maidanski (really Patrick Marlier) + + * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full, + AO_compare_double_and_swap_double_full): Use EAX for the result + since cmpxchg clobbers it. + * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full, + AO_compare_double_and_swap_double_full): Ditto. + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full, + AO_compare_double_and_swap_double_full): Ditto. + * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full, + AO_compare_double_and_swap_double_full): Ditto. + +2010-02-04 Ivan Maidanski + + * doc/Makefile.in: Regenerate. + +2010-02-04 Ivan Maidanski (really Ian Wienand) + + * doc/Makefile.am: Remove duplicate file in the list. + +2010-02-03 Ivan Maidanski + + * ChangeLog: Fix some typos. + +2010-02-03 Ivan Maidanski + + * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release): + Define "i" variable only if used (to suppress a compiler warning). + +2010-02-02 Ivan Maidanski + + * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix + "xchg" data size (remove "l" suffix). + * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): + Ditto. + * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use + AO_TS_t for oldval. + * src/atomic_ops/sysdeps/sunc/x86.h + (AO_compare_double_and_swap_double_full, + AO_HAVE_compare_double_and_swap_double_full): Comment out (since + not tested, might be wrong, and tickles a bug in some Sun CC + versions; besides, __PIC__ macro is never predefined by Sun CC). + +2010-01-29 Ivan Maidanski + + * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b, + automake-1.11.1, autoconf-2.65). + * Makefile.in: Ditto. + * aclocal.m4: Ditto. + * compile: Ditto. + * config.guess: Ditto. + * config.sub: Ditto. + * configure: Ditto. + * depcomp: Ditto. + * install-sh: Ditto. + * missing: Ditto. + * mkinstalldirs: Ditto. + * doc/Makefile.in: Ditto. + * src/Makefile.in: Ditto. + * src/atomic_ops/Makefile.in: Ditto. + * src/atomic_ops/sysdeps/Makefile.in: Ditto. + * src/config.h.in: Ditto. + * tests/Makefile.in: Ditto. + +2009-12-19 Ivan Maidanski + + * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to + AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h). + +2009-12-17 Ivan Maidanski (really Emmanuel Stapf) + + * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_). + +2009-12-04 Ivan Maidanski + + * configure.ac, README: Change to version 7.2alpha5. + * configure: Regenerate. + +[7.2alpha4] + +2009-12-02 Ivan Maidanski + + * configure.ac, README: Change to version 7.2alpha4. + * configure: Regenerate. + +2009-12-01 Ivan Maidanski + + * configure.ac, README: Change to version 1.3alpha1. + * configure: Regenerate. + +2009-11-21 Ivan Maidanski (really Daniel R. Grayson) + + * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS + values. + * configure: Regenerate. + +2009-10-06 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET + redefinition. + +2009-10-05 Ivan Maidanski + + * src/atomic_ops/sysdeps/Makefile.in: Regenerate. + +2009-10-05 Ivan Maidanski (really Takashi YOSHII) + + * src/atomic_ops/sysdeps/gcc/sh.h: New file. + * src/atomic_ops.h: Include gcc/sh.h if __arm__. + * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry. + +2009-10-02 Ivan Maidanski + + * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h, + msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h + entries; order all entries alphabetically. + * src/atomic_ops/sysdeps/Makefile.in: Regenerate. + +2009-10-01 Ivan Maidanski + + * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2, + automake-1.10.2, autoconf-2.64). + * INSTALL: Ditto. + * Makefile.in: Ditto. + * aclocal.m4: Ditto. + * config.guess: Ditto. + * config.sub: Ditto. + * configure: Ditto. + * depcomp: Ditto. + * install-sh: Ditto. + * missing: Ditto. + * mkinstalldirs: Ditto. + * doc/Makefile.in: Ditto. + * src/config.h.in: Ditto. + * src/Makefile.in: Ditto. + * src/atomic_ops/Makefile.in: Ditto. + * src/atomic_ops/sysdeps/Makefile.in: Ditto. + * tests/Makefile.in: Ditto. + +2009-10-01 Ivan Maidanski + + * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#' + for the preprocessor directives. + * src/atomic_ops/sysdeps/sunc/x86.h: Ditto. + +2009-09-30 Ivan Maidanski (really Petter Urkedal) + + * README: Move notes from the hand-edited part of INSTALL which + was overwritten by Automake recently. + +2009-09-26 Ivan Maidanski + + * aclocal.m4: Regenerate (by autoreconf -vif). + * config.guess: Ditto. + * config.sub: Ditto. + * configure: Ditto. + * INSTALL: Ditto. + * Makefile.in: Ditto. + * doc/Makefile.in: Ditto. + * src/config.h.in: Ditto. + * src/Makefile.in: Ditto. + * src/atomic_ops/Makefile.in: Ditto. + * src/atomic_ops/sysdeps/Makefile.in: Ditto. + * tests/Makefile.in: Ditto. + +2009-09-25 Ivan Maidanski (really Petter Urkedal) + + * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O. + +2009-09-16 Ivan Maidanski + + * ChangeLog: Remove trailing spaces at EOLn. + * doc/README.txt: Expand all tabs to spaces; remove trailing + spaces at EOLn; remove multiple trailing blank lines. + * src/atomic_ops.c: Ditto. + * src/atomic_ops.h: Ditto. + * src/atomic_ops/generalize-small.h: Ditto. + * src/atomic_ops/generalize.h: Ditto. + * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto. + * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto. + * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto. + * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto. + * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto. + * src/atomic_ops/sysdeps/gcc/arm.h: Ditto. + * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto. + * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto. + * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto. + * src/atomic_ops/sysdeps/gcc/mips.h: Ditto. + * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto. + * src/atomic_ops/sysdeps/gcc/s390.h: Ditto. + * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto. + * src/atomic_ops/sysdeps/gcc/x86.h: Ditto. + * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto. + * src/atomic_ops/sysdeps/generic_pthread.h: Ditto. + * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto. + * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto. + * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto. + * src/atomic_ops/sysdeps/icc/ia64.h: Ditto. + * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto. + * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/msftc/arm.h: Ditto. + * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto. + * src/atomic_ops/sysdeps/msftc/x86.h: Ditto. + * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto. + * src/atomic_ops/sysdeps/ordered.h: Ditto. + * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto. + * src/atomic_ops/sysdeps/read_ordered.h: Ditto. + * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto. + * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto. + * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto. + * src/atomic_ops/sysdeps/sunc/x86.h: Ditto. + * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto. + * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto. + * src/atomic_ops_stack.c: Ditto. + * src/atomic_ops_stack.h: Ditto. + * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a + comment. + * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn. + +2009-09-10 Ivan Maidanski + (ivmai123.diff) + + * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps + (regarding memory barrier). + * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize + AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead. + * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full, + AO_test_and_set): Replace FIXME with the comment saying it is + emulated (in generalize.h); include test_and_set_t_is_ao_t.h. + * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement + using InterlockedCompareExchange() (assuming the latter has a full + mbar) for ARMv6+. + * src/atomic_ops/sysdeps/msftc/arm.h: Include + all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case + of pre-ARMv6; add the comment. + +2009-09-10 Ivan Maidanski + (ivmai122.diff) + + * src/atomic_ops/sysdeps/armcc/arm_v6.h + (AO_compare_double_and_swap_double): Replace false/true with 0/1. + * src/atomic_ops/sysdeps/gcc/arm.h + (AO_compare_double_and_swap_double): Ditto. + * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+ + predefined macros (6J, 6ZK, 7A, 7M, 7R). + * src/atomic_ops/sysdeps/gcc/arm.h + (AO_compare_double_and_swap_double): Add "cc" clobber to asm. + * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire): + Correct the name (convert from the lower case). + * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire): + Ditto. + * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set, + AO_compare_and_swap): Comment out unimplemented code (and the + corresponding macros); add FIXME. + * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding + _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with + pthreads-w32 library); don't include signal.h, sys/time.h, + sys/select.h in this case; include windows.h instead. + * src/atomic_ops.c (AO_pause): Use Sleep() in case of + AO_USE_WIN32_PTHREADS (instead of select()). + * src/atomic_ops.c (all_sigs, initialized): Don't define in case + of AO_USE_WIN32_PTHREADS. + * src/atomic_ops.c (AO_compare_and_swap_emulation, + AO_compare_double_and_swap_double_emulation): Don't deal with + signals in case of AO_USE_WIN32_PTHREADS. + +2009-09-10 Ivan Maidanski + (diff110) + + * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support + for ARM family). + * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file. + * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New + macro. + * src/atomic_ops/sysdeps/msftc/common32_defs.h + (AO_USE_INTERLOCKED_INTRINSICS): Ditto. + * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked" + declarations to common32_defs.h. + * src/atomic_ops/sysdeps/msftc/common32_defs.h + (AO_INTERLOCKED_VOLATILE): New macro defined (used by + Interlocked-based primitives) for compatibility with older VC++. + * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include + missing if WinCE target. + * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h + (define AO_USE_INTERLOCKED_INTRINSICS unconditionally). + * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full, + AO_fetch_and_add1_full, AO_fetch_and_sub1_full, + AO_compare_and_swap_full): Move arch-independent primitives to + common32_defs.h. + * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or + better CPU (since Interlocked Add and Xchg primitives are available + on any 32-bit CPU). + * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than + 400 (for i80386). + * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE + on x86). + * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE). + +2009-09-10 Ivan Maidanski + (diff109_cvs) + + * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix + ASSUME_WINDOWS98 with "AO_"). + * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with + "AO_". + * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace + K&R-style function definition with ANSI C one. + * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): + Replace AO_TS_SET with its value 0xff (some compilers does not like + C enum consts inside inline assembler). + * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add + comment about "missing return value" warning. + * src/atomic_ops/sysdeps/msftc/x86.h + (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro. + * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use + _InterlockedCompareExchange() with args and result of PVOID type + if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for + DigitalMars compiler support). + * src/atomic_ops/sysdeps/msftc/x86.h + (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2" + variables ("val1" is the lowest part of AO_double_t). + * src/atomic_ops/sysdeps/msftc/x86.h + (AO_compare_double_and_swap_double_full): Rename to + AO_double_compare_and_swap_full (as it has 3 args). + * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment + with ANSI C one. + +2009-09-10 Ivan Maidanski + (diff108_cvs) + + * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486 + and 32-bit WinChips. + * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto. + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace + K&R-style function definition with ANSI C one. + * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/gcc/x86_64.h + (AO_compare_double_and_swap_double_full): Fix comment. + * src/atomic_ops/sysdeps/gcc/x86_64.h + (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2" + variables ("val1" is the lowest part of AO_double_t). + * src/atomic_ops/sysdeps/msftc/x86_64.h + (AO_compare_double_and_swap_double_full): Ditto. + * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about + ASSUME_WINDOWS98. + * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New + macro. + * src/atomic_ops/sysdeps/msftc/x86_64.h: Include + "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in + x86_64.h for gcc); remove FIXME (for re-implement test-and-set). + * src/atomic_ops/sysdeps/msftc/x86_64.h: Include + "standard_ao_double_t.h" (same as in x86_64.h for gcc). + * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include + assuming at least VC++ v8. + * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked + prototypes (since they are always declared in intrin.h). + * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its + definition below CAS primitive (to textually group all asm-based + primitives together). + * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full): + Implement for AO_ASM_X64_AVAILABLE case. + * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING + macro (replaced with AO_ASM_X64_AVAILABLE). + * src/atomic_ops/sysdeps/msftc/x86_64.h + (AO_compare_double_and_swap_double_full): Add intrinsic-based + implementation for VC++ v9+. + * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include + (and use "__m128" type) if _WIN64. + * src/atomic_ops/sysdeps/standard_ao_double_t.h + (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as + "double_ptr_storage" is defined for all cases). + +2009-09-09 Hans Boehm (Really mostly Patrick Marlier) + + * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9): + Renamed to AO_NO_SPARC_V9. + +2009-09-01 Hans Boehm (Really mostly Patrick Marlier) + + * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use + AO_TS_VAL_t for "oldval" (for 64-bit support). + * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full): + New function implemented. + +2009-08-12 Hans Boehm (Really Ivan Maidanski) + (diff107_cvs, resembling diff78 and diff88_cvs) + + * src/atomic_ops/sysdeps/sunc/x86.h: New file. + * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto. + * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars, + Watcom, Sun C. + * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based + implementation for VC++ v8+ (include before it unless + WinCE target); use asm-based barrier implementation for Borland, + DigitalMars and Watcom. + * src/atomic_ops.h: Fix comment (for x86_64). + * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch + headers for Sun C (if not AO_USE_PTHREAD_DEFS). + * src/atomic_ops.h: Include VC-specific arch headers for Borland, + DigitalMars and Watcom (Win32 target only). + +2009-05-27 Hans Boehm (Really Ivan Maidanski) + (diff87_cvs, resembling diff29, diff68, diff78 partly) + + * doc/README.txt: Remove outdated info about Windows support. + * src/atomic_ops/generalize.h (AO_nop_full): Replace + K&R-style function definition with ANSI C one. + * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write): + Ditto. + * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto. + * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto. + * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto. + * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto. + * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix + comment. + +2009-02-24 Hans Boehm (Really primarily Earl Chew) + + * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index, + update modifiers to asms, refine clobbers to "cr0", use + cr0 instead of cr7, add explicit AO_fetch_and_add, + add UNTESTED 64 bit support. + +2008-11-10 Hans Boehm (Really Joerg Wagner) + + * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute + AO_compare_and_swap value differently, add + AO_compare_double_and_swap_double, some indentation fixes. + * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more + robust and minimize clobbers, Add AO_compare_double_and_swap_double. + +2008-11-06 Hans Boehm + + * INSTALL: Add some platform-specific documentation. + * src/Makefile.msft: Fix copyright notice. + +2008-10-21 Hans Boehm (really Ivan Maidanski) + + * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments. + * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments. + * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments. + * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments. + * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments. + * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments. + * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments. + * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments. + * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments. + * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments. + * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments. + * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments. + * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments. + * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments. + * src/atomic_ops.c: Fix comments. + * src/atomic_ops.h: Fix comments. + * src/atomic_ops_stack.c: Fix comments. + * src/atomic_ops_stack.h: Fix comments. + +2008-10-20 Hans Boehm (really Andrew Agno) + + * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full): + fix return type. + +2008-08-21 Hans Boehm + + * config.guess, config.sub, configure: Regenerate/replace. + Use autoconf 2.61, automake 1.9.6. + +2008-08-19 Hans Boehm (really Thiemo Seufer) + + * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz + instruction. + +2008-08-19 Hans Boehm (really Sebastian Siewior) + + * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__. + +2008-07-24 Hans Boehm (really Ivan Maidanski) + + * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h: + Add parentheses around addr arg for various functions. + +2008-07-18 Hans Boehm + + * src/atomic_ops/sysdeps/gcc/powerpc.h: + Add const to first parameter of load calls (forgot one). + +2008-07-18 Hans Boehm + + * doc/README.txt, src/atomic_ops/generalize.h, + src/atomic_ops/generalize-small.template, + src/atomic_ops/generalize-small.h, + src/atomic_ops/sysdeps/acquire_release_volatile.h, + src/atomic_ops/sysdeps/char_acquire_release_volatile.h, + src/atomic_ops/sysdeps/int_acquire_release_volatile.h, + src/atomic_ops/sysdeps/short_acquire_release_volatile.h, + 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, + src/atomic_ops/sysdeps/ao_t_is_int.h, + src/atomic_ops/sysdeps/atomic_load_store.h, + src/atomic_ops/sysdeps/char_atomic_load_store.h, + src/atomic_ops/sysdeps/int_atomic_load_store.h, + src/atomic_ops/sysdeps/short_atomic_load_store.h, + src/atomic_ops/sysdeps/generic_pthread.h, + src/atomic_ops/sysdeps/read_ordered.h, + src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h, + src/atomic_ops/sysdeps/gcc/arm.h, + src/atomic_ops/sysdeps/icc/ia64.h, + src/atomic_ops/sysdeps/ibmc/powerpc.h: + Add const to first parameter of load calls. + +2008-07-10 Hans Boehm + + * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe + AO_or_full, and let it be autogenerated instead. + +2008-07-03 Hans Boehm (Really Thiemo Seufer) + + * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support, + fixing a merge accident. + +2008-05-30 Hans Boehm (Really from various Debian + contributors) + + * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in: + Regenerate. + +2008-05-30 Hans Boehm (Really from various Debian + contributors) + + * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am, + src/atomic_ops/sysdeps/gcc/mips.h: Add mips support. + * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work + on char, align AO_t. Add cas, or. + * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths. + * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire. + * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in, + tests/Makefile.in: Regenerate. + +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-11-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-04 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 probability, 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 support for the Sun SPARC compiler. + * atomic_ops_sysdeps.S: Add support for platforms that require + out-of-line assembly 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.