ivmai [Tue, 7 Jun 2011 16:57:06 +0000 (16:57 +0000)]
2011-06-07 Ivan Maidanski <ivmai@mail.ru>
* 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).
ivmai [Tue, 7 Jun 2011 14:13:16 +0000 (14:13 +0000)]
2011-06-07 Ivan Maidanski <ivmai@mail.ru>
* 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).
ivmai [Tue, 7 Jun 2011 09:48:44 +0000 (09:48 +0000)]
2011-06-07 Ivan Maidanski <ivmai@mail.ru>
* 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).
ivmai [Mon, 6 Jun 2011 20:28:43 +0000 (20:28 +0000)]
2011-06-06 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Mon, 6 Jun 2011 13:34:11 +0000 (13:34 +0000)]
2011-06-06 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Mon, 6 Jun 2011 09:04:58 +0000 (09:04 +0000)]
2011-06-06 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Mon, 6 Jun 2011 07:30:09 +0000 (07:30 +0000)]
2011-06-06 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Fri, 3 Jun 2011 13:25:31 +0000 (13:25 +0000)]
2011-06-03 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Fri, 3 Jun 2011 13:02:26 +0000 (13:02 +0000)]
2011-06-03 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Fri, 3 Jun 2011 10:39:38 +0000 (10:39 +0000)]
2011-06-03 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Fri, 3 Jun 2011 09:17:00 +0000 (09:17 +0000)]
2011-06-03 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Thu, 2 Jun 2011 14:42:01 +0000 (14:42 +0000)]
2011-06-02 Ivan Maidanski <ivmai@mail.ru>
* tests/test_malloc.c (main): Remove unused "exper_n" local
variable.
* tests/test_stack.c (run_one_test): Remove unused "aux" local
variable.
ivmai [Wed, 1 Jun 2011 22:43:19 +0000 (22:43 +0000)]
2011-06-01 Ivan Maidanski <ivmai@mail.ru>
* 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".
ivmai [Wed, 1 Jun 2011 13:57:18 +0000 (13:57 +0000)]
2011-06-01 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Wed, 1 Jun 2011 12:34:42 +0000 (12:34 +0000)]
2011-06-01 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
Sun C compiler (call "release" variant of AO_store).
ivmai [Wed, 1 Jun 2011 07:51:37 +0000 (07:51 +0000)]
2011-06-01 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Mon, 30 May 2011 16:52:54 +0000 (16:52 +0000)]
2011-05-30 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Wed, 11 May 2011 12:22:45 +0000 (12:22 +0000)]
2011-05-11 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Tue, 10 May 2011 07:40:52 +0000 (07:40 +0000)]
2011-05-10 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Tue, 10 May 2011 07:05:30 +0000 (07:05 +0000)]
2011-05-10 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Fri, 22 Apr 2011 21:47:57 +0000 (21:47 +0000)]
2011-04-22 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
asm; remove redundant trailing ';'.
ivmai [Mon, 11 Apr 2011 19:55:41 +0000 (19:55 +0000)]
2011-04-11 Ivan Maidanski <ivmai@mail.ru> (really Jim Meyering)
* doc/README.txt: Remove doubled words in comments.
ivmai [Fri, 18 Mar 2011 22:39:38 +0000 (22:39 +0000)]
2011-03-18 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/gcc/arm.h: Test for all known pre-v6 ARM
chips instead of all the currently existing v6+ ones.
ivmai [Sun, 13 Mar 2011 10:50:36 +0000 (10:50 +0000)]
2011-03-13 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Sat, 19 Feb 2011 20:10:41 +0000 (20:10 +0000)]
2011-02-19 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Sat, 19 Feb 2011 11:07:15 +0000 (11:07 +0000)]
2011-02-19 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
AO_USE_NANOSLEEP for NaCl.
ivmai [Sat, 19 Feb 2011 10:46:03 +0000 (10:46 +0000)]
2011-02-19 Ivan Maidanski <ivmai@mail.ru>
* aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
automake-1.11.1 and libtool-2.4).
* configure: Ditto.
* ltmain.sh: Ditto.
* makefile.in: Ditto.
* m4/libtool.m4: Ditto.
* m4/ltversion.m4: Ditto.
* mach_dep.c (GC_with_callee_saves_pushed): Fix FE_ALL_EXCEPT
macro.
ivmai [Sat, 12 Feb 2011 14:14:00 +0000 (14:14 +0000)]
2011-02-09 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Fri, 7 Jan 2011 09:08:14 +0000 (09:08 +0000)]
2011-01-07 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Tue, 23 Nov 2010 20:10:26 +0000 (20:10 +0000)]
2010-11-23 Ivan Maidanski <ivmai@mail.ru> (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.
ivmai [Wed, 15 Sep 2010 19:18:33 +0000 (19:18 +0000)]
2010-09-15 Ivan Maidanski <ivmai@mail.ru> (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.
ivmai [Sat, 14 Aug 2010 14:35:55 +0000 (14:35 +0000)]
2010-08-14 Ivan Maidanski <ivmai@mail.ru>
* aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
automake-1.11.1 and libtool-2.2.8).
* configure: Ditto.
* ltmain.sh: Ditto.
* Makefile.in: Ditto.
* include/private/config.h.in: Ditto.
* m4/libtool.m4: Ditto.
* m4/ltoptions.m4: Ditto.
* m4/ltversion.m4: Ditto.
* m4/lt~obsolete.m4: Ditto.
ivmai [Sat, 14 Aug 2010 11:36:50 +0000 (11:36 +0000)]
2010-08-14 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
with ANSI C one.
ivmai [Sun, 30 May 2010 15:00:01 +0000 (15:00 +0000)]
2010-05-30 Ivan Maidanski <ivmai@mail.ru> (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.
ivmai [Sat, 22 May 2010 14:11:38 +0000 (14:11 +0000)]
2010-05-22 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
Add "gcc/avr32.h".
* src/atomic_ops/sysdeps/Makefile.in: Regenerate.
ivmai [Fri, 21 May 2010 16:01:35 +0000 (16:01 +0000)]
2010-05-21 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
* src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
* src/atomic_ops/sysdeps/gcc/avr32.h: New file.
ivmai [Thu, 29 Apr 2010 10:31:52 +0000 (10:31 +0000)]
2010-04-29 Ivan Maidanski <ivmai@mail.ru>
* doc/README_malloc.txt: Fix a typo.
* doc/README_stack.txt: Ditto.
ivmai [Thu, 25 Feb 2010 07:58:52 +0000 (07:58 +0000)]
2010-02-25 Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
* .cvsignore: New file.
* include/private/.cvsignore: Ditto.
ivmai [Fri, 19 Feb 2010 17:12:05 +0000 (17:12 +0000)]
2010-02-19 Ivan Maidanski <ivmai@mail.ru> (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).
ivmai [Thu, 18 Feb 2010 10:11:47 +0000 (10:11 +0000)]
2010-02-18 Ivan Maidanski <ivmai@mail.ru>
* 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+.
ivmai [Wed, 17 Feb 2010 19:28:28 +0000 (19:28 +0000)]
2010-02-17 Ivan Maidanski <ivmai@mail.ru> (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.
ivmai [Thu, 4 Feb 2010 18:55:55 +0000 (18:55 +0000)]
2010-02-04 Ivan Maidanski <ivmai@mail.ru>
* doc/Makefile.in: Regenerate.
ivmai [Thu, 4 Feb 2010 07:18:58 +0000 (07:18 +0000)]
2010-02-04 Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
* doc/Makefile.am: Remove duplicate file in the list.
ivmai [Wed, 3 Feb 2010 20:23:16 +0000 (20:23 +0000)]
2010-02-03 Ivan Maidanski <ivmai@mail.ru>
* ChangeLog: Fix some typos.
ivmai [Wed, 3 Feb 2010 07:03:59 +0000 (07:03 +0000)]
2010-02-03 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
Define "i" variable only if used (to suppress a compiler warning).
ivmai [Tue, 2 Feb 2010 19:42:29 +0000 (19:42 +0000)]
2010-02-02 Ivan Maidanski <ivmai@mail.ru>
* 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).
ivmai [Fri, 29 Jan 2010 20:45:17 +0000 (20:45 +0000)]
2010-01-29 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Sat, 19 Dec 2009 17:15:46 +0000 (17:15 +0000)]
2009-12-19 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
ivmai [Thu, 17 Dec 2009 07:16:42 +0000 (07:16 +0000)]
2009-12-07 Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
* src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
ivmai [Fri, 4 Dec 2009 09:55:54 +0000 (09:55 +0000)]
2009-12-04 Ivan Maidanski <ivmai@mail.ru>
* include/gc_version.h, configure.ac, doc/README: Change to
version 7.2alpha5.
* configure: Regenerate.
ivmai [Wed, 2 Dec 2009 07:40:01 +0000 (07:40 +0000)]
2009-12-02 Ivan Maidanski <ivmai@mail.ru>
* configure.ac, README: Change to version 7.2alpha4.
* configure: Regenerate.
ivmai [Tue, 1 Dec 2009 20:34:34 +0000 (20:34 +0000)]
2009-12-01 Ivan Maidanski <ivmai@mail.ru>
* include/gc_version.h, configure.ac, doc/README: Change to
version 7.2alpha4.
* configure: Regenerate.
ivmai [Sat, 21 Nov 2009 08:44:15 +0000 (08:44 +0000)]
2009-11-21 Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
* configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
values.
* configure: Regenerate.
ivmai [Wed, 7 Oct 2009 06:13:03 +0000 (06:13 +0000)]
2009-10-06 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
redefinition.
ivmai [Mon, 5 Oct 2009 16:53:27 +0000 (16:53 +0000)]
2009-10-05 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/Makefile.in: Regenerate.
ivmai [Mon, 5 Oct 2009 16:43:01 +0000 (16:43 +0000)]
2009-10-05 Ivan Maidanski <ivmai@mail.ru> (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.
ivmai [Fri, 2 Oct 2009 08:03:56 +0000 (08:03 +0000)]
2009-10-02 Ivan Maidanski <ivmai@mail.ru>
* 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.
* Makefile.in: Regenerate.
ivmai [Thu, 1 Oct 2009 19:46:58 +0000 (19:46 +0000)]
2009-10-01 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Thu, 1 Oct 2009 09:34:52 +0000 (09:34 +0000)]
2009-10-01 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
for the preprocessor directives.
* src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
ivmai [Wed, 30 Sep 2009 18:13:53 +0000 (18:13 +0000)]
2009-09-30 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
* README: Move notes from the hand-edited part of INSTALL which
was overwritten by Automake recently.
ivmai [Tue, 29 Sep 2009 13:41:49 +0000 (13:41 +0000)]
* Moving libatomic_ops-1.2 to libatomic_ops
ivmai [Sat, 26 Sep 2009 11:42:52 +0000 (11:42 +0000)]
2009-09-26 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Fri, 25 Sep 2009 17:40:30 +0000 (17:40 +0000)]
2009-09-25 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
* configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
ivmai [Wed, 16 Sep 2009 10:47:31 +0000 (10:47 +0000)]
2009-09-16 Ivan Maidanski <ivmai@mail.ru>
* 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.
ivmai [Thu, 10 Sep 2009 15:53:22 +0000 (15:53 +0000)]
2009-09-10 Ivan Maidanski <ivmai@mail.ru>
ivmai [Thu, 10 Sep 2009 15:43:48 +0000 (15:43 +0000)]
2009-09-10 Ivan Maidanski <ivmai@mail.ru>
(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.
ivmai [Thu, 10 Sep 2009 15:39:42 +0000 (15:39 +0000)]
2009-09-10 Ivan Maidanski <ivmai@mail.ru>
(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.
ivmai [Thu, 10 Sep 2009 15:35:36 +0000 (15:35 +0000)]
2009-09-10 Ivan Maidanski <ivmai@mail.ru>
(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 <intrin.h> 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).
ivmai [Thu, 10 Sep 2009 15:09:01 +0000 (15:09 +0000)]
2009-09-10 Ivan Maidanski <ivmai@mail.ru>
(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 <intrin.h> 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).
ivmai [Thu, 10 Sep 2009 15:01:14 +0000 (15:01 +0000)]
2009-09-10 Ivan Maidanski <ivmai@mail.ru>
(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.
ivmai [Thu, 10 Sep 2009 14:12:12 +0000 (14:12 +0000)]
diff108_cvs
hboehm [Wed, 9 Sep 2009 20:31:20 +0000 (20:31 +0000)]
2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
* src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
Renamed to AO_NO_SPARC_V9.
hboehm [Tue, 1 Sep 2009 21:39:17 +0000 (21:39 +0000)]
2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (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.
hboehm [Wed, 12 Aug 2009 22:33:52 +0000 (22:33 +0000)]
2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
(diff107_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 <intrin.h> 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).
hboehm [Wed, 27 May 2009 23:29:01 +0000 (23:29 +0000)]
2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (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.
hboehm [Wed, 25 Feb 2009 05:30:41 +0000 (05:30 +0000)]
2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (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.
hboehm [Tue, 11 Nov 2008 00:27:48 +0000 (00:27 +0000)]
2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (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.
hboehm [Fri, 7 Nov 2008 00:56:24 +0000 (00:56 +0000)]
2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
* INSTALL: Add some platform-specific documentation.
* src/Makefile.msft: Fix copyright notice.
hboehm [Wed, 22 Oct 2008 01:12:17 +0000 (01:12 +0000)]
2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (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.
hboehm [Mon, 20 Oct 2008 23:17:05 +0000 (23:17 +0000)]
2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
* src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
fix return type.
hboehm [Thu, 21 Aug 2008 21:23:24 +0000 (21:23 +0000)]
2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
* config.guess, config.sub, configure: Regenerate/replace.
Use autoconf 2.61, automake 1.9.6.
hboehm [Tue, 19 Aug 2008 20:11:14 +0000 (20:11 +0000)]
2008-08-19 Hans Boehm <Hans.Boehm@hp.com>
Fix dates in ChangeLog
hboehm [Tue, 19 Aug 2008 19:37:13 +0000 (19:37 +0000)]
2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
* src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
instruction.
2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
* src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
hboehm [Sat, 26 Jul 2008 00:51:35 +0000 (00:51 +0000)]
2008-07-25 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidanski)
Ivan's description of the patch follows. Note that a few pieces like
the GC_malloc(0) patch, were not applied since an alternate had been
previously applied. A few differed stylistically from the rest of
the code (mostly casts to void * instead of target type),
or were classified as too minor to bother. Note that
all of Ivan's static declarations which did not correct outright
naming bugs (as a few did), where replaced by STATIC, which is
ignored by default.
- minor bug fixing (for FreeBSD, for THREAD_LOCAL_ALLOC and for
GC_malloc(0));
- addition of missing getter/setter functions for public variables
(may be useful if compiled as Win32 DLL);
- addition of missing GC_API for some exported functions;
- addition of missing "static" declarator for internal functions
and variables (where possible);
- replacement of all remaining K&R-style definitions with ANSI
C ones (__STDC__ macro is not used anymore);
- addition of some Win32 macro definitions (that may be missing in
the standard headers supplied with a compiler) for GWW_VDB mode;
- elimination of most compiler warnings (except for
"uninitialized data" warning);
- several typos correction;
- missing parenthesis addition in macros in some header files of
"libatomic_ops" module.
My highlights based on reading the patch:
* allchblk.c: Remove GC_freehblk_ptr decl.
Make free_list_index_of() static.
* include/gc.h: Use __int64 on win64, define GC_oom_func,
GC_finalizer_notifier_proc, GC_finalizer_notifier_proc,
add getter and setters: GC_get_gc_no, GC_get_parallel,
GC_set_oom_fn, GC_set_finalize_on_demand,
GC_set_java_finalization, GC_set_dont_expand,
GC_set_no_dls, GC_set_max_retries, GC_set_dont_precollect,
GC_set_finalizer_notifier. Always define GC_win32_free_heap.
gc_config_macros.h: Define _REENTRANT after processing
GC_THREADS.
* include/gc_cpp.h: Improve GC_PLACEMENT_DELETE test,
handling of operator new[] for old Windows compilers.
* include/gc_inline.h (GC_MALLOC_FAST_GRANS): Add parentheses
around arguments.
* dbg_mlc.c, malloc.c, misc.c: Add many GC_API specs.
* mark.c (GC_mark_and_push_stack): Fix source argument for
blacklist printing.
* misc.c: Fix log file naming based on environment variable
for Windows. Make GC_set_warn_proc and GC_set_free_space_divisor
just return current value with 0 argument. Add DONT_USER_USER32_DLL.
Add various getters and setters as in gc.h.
* os_dep.c: Remove no longer used GC_disable/enable_signals
implementations. (GC_get_stack_base): Add pthread_attr_destroy
call. No longer set GC_old_bus_handler in DARWIN workaround.
* pthread_support.c: GC_register_my_thread must also
call GC_init_thread_local.
hboehm [Fri, 18 Jul 2008 22:45:13 +0000 (22:45 +0000)]
2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
* src/atomic_ops/sysdeps/gcc/powerpc.h:
Add const to first parameter of load calls (forgot one).
hboehm [Fri, 18 Jul 2008 22:42:20 +0000 (22:42 +0000)]
2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
* 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.
hboehm [Thu, 10 Jul 2008 23:27:45 +0000 (23:27 +0000)]
2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
* src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
AO_or_full, and let it be autogenerated instead.
hboehm [Thu, 3 Jul 2008 21:20:52 +0000 (21:20 +0000)]
2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
* src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
fixing a merge accident.
hboehm [Sat, 31 May 2008 01:03:21 +0000 (01:03 +0000)]
2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
* doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
Regenerate.
hboehm [Sat, 31 May 2008 00:59:36 +0000 (00:59 +0000)]
2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (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.
hboehm [Tue, 12 Feb 2008 00:18:53 +0000 (00:18 +0000)]
2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
(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.
hboehm [Wed, 9 Jan 2008 19:11:44 +0000 (19:11 +0000)]
2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
* src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
double_ptr_storage default to long long; define everywhere.
hboehm [Tue, 8 Jan 2008 01:51:12 +0000 (01:51 +0000)]
2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
* src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
compare_double_and_swap_double.
hboehm [Mon, 7 Jan 2008 05:11:52 +0000 (05:11 +0000)]
2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (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.
hboehm [Fri, 4 Jan 2008 00:45:32 +0000 (00:45 +0000)]
2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
(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.
hboehm [Thu, 3 Jan 2008 07:12:18 +0000 (07:12 +0000)]
2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
* src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
%X1 modifier to support indexed addressing.
hboehm [Mon, 23 Jul 2007 21:05:19 +0000 (21:05 +0000)]
2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
* src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
for VC++6.
a_tobler [Thu, 5 Jul 2007 20:38:42 +0000 (20:38 +0000)]
2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
* src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
powerpc.h.
hboehm [Thu, 28 Jun 2007 21:23:45 +0000 (21:23 +0000)]
2007-06-28 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am: Use -no-undefined for libgc.
* Makefile.in: Regenerate.
* Makefile.direct: Document USE_PROC_FOR_LIBRARIES.
* dyn_load.c (GC_register_map_entries): Rename prot_buf to prot
consistently.
* misc.c: Fix some WARN calls. Move GC_is_initialized setting and
GC_thr_init() call.
* os_dep.c: Consistently use WARN where appropriate.
* thread_local_alloc.c: Revert change to GC_WIN32_THREADS test. Instead
remove inappropriate pthread.h include.
* doc/README.linux: Remove some anachronisms.
* libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
64-bit version.
hboehm [Thu, 14 Jun 2007 05:17:45 +0000 (05:17 +0000)]
2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
* src/atomic_ops.h: include stddef.h