1 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
3 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full):
4 Specify "%b0" (instead of "%0") in "xchg" instruction (to
5 workaround a bug in Sun C 5.11).
6 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
9 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
11 * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
12 Sun C compiler (call "release" variant of AO_store).
14 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
16 * configure.ac (_PTHREADS): New template (used for NetBSD).
17 * configure.ac (THREADDLLIBS): New macro.
18 * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD,
19 test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS
20 instead of "-lpthread".
21 * configure: Regenerate.
23 * doc/Makefile.in: Ditto.
24 * src/Makefile.in: Ditto.
25 * src/atomic_ops/Makefile.in: Ditto.
26 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
27 * src/config.h.in: Ditto.
28 * tests/Makefile.in: Ditto.
30 2011-05-30 Ivan Maidanski <ivmai@mail.ru>
32 * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not
33 define the corresponding macro.
34 * configure.ac: Don't check for GCC twice.
35 * configure: Regenerate.
36 * tests/test_malloc.c (DEFAULT_NTHREADS): New macro.
37 * tests/test_malloc.c (run_one_test): Refine printed message (in
39 * tests/test_malloc.c (main): Use DEFAULT_NTHREADS.
40 * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer.
41 * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS,
42 OPT_MAP_ANON): New macro.
43 * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as
44 file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON).
45 * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON,
46 GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open()
49 2011-05-11 Ivan Maidanski <ivmai@mail.ru>
51 * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
53 * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and
54 LARGE_OBJ_SIZE, respectively.
55 * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH,
56 LARGE_OBJ_SIZE): Do not define unless undefined.
57 * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST
60 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
62 * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
64 * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
66 * tests/Makefile.am: Remove trailing spaces at EOLn.
67 * tests/Makefile.in: Regenerate.
69 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
71 * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
73 * tests/test_stack.c: Expand all tabs to spaces.
74 * tests/test_atomic_include.h: Ditto.
75 * tests/test_stack.c (main): Free pop'ed elements.
76 * tests/test_atomic_include.h (test_atomic, test_atomic_release,
77 test_atomic_acquire, test_atomic_read, test_atomic_write,
78 test_atomic_full, test_atomic_release_write,
79 test_atomic_acquire_read): Remove prototype.
81 2011-04-22 Ivan Maidanski <ivmai@mail.ru>
83 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
84 asm; remove redundant trailing ';'.
86 2011-04-11 Ivan Maidanski <ivmai@mail.ru> (really Jim Meyering)
88 * doc/README.txt: Remove doubled words in comments.
90 2011-03-18 Ivan Maidanski <ivmai@mail.ru>
92 * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
93 ARM chips instead of all the currently existing v6+ ones.
95 2011-03-13 Ivan Maidanski <ivmai@mail.ru>
97 * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
98 expand all tabs to spaces.
99 * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
100 Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug).
101 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
104 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
106 * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl.
107 * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in
108 a conditional expression) to prevent a compiler warning.
109 * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove
110 trailing spaces at EOLn.
112 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
114 * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
115 AO_USE_NANOSLEEP for NaCl.
117 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
119 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
120 automake-1.11.1 and libtool-2.4).
123 2011-02-09 Ivan Maidanski <ivmai@mail.ru>
125 * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
127 * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
129 * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS.
130 * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP.
131 * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code.
132 * src/atomic_ops.c (AO_pause): Use nanosleep() if
134 * src/atomic_ops.c (all_sigs, initialized,
135 AO_compare_and_swap_emulation,
136 AO_compare_double_and_swap_double_emulation): Use
137 AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS.
139 2011-01-07 Ivan Maidanski <ivmai@mail.ru>
141 * src/.cvsignore: Add more auto-generated files.
142 * tests/.cvsignore: Ditto.
143 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store,
144 AO_compare_double_and_swap_double): Reformat code.
145 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
146 AO_compare_double_and_swap_double): Ditto.
147 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
148 Produce "it eq" instruction only for Thumb mode.
149 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
151 2010-11-23 Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
153 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
154 Insert "it eq" just before "strexeq" (required for Thumb-2 mode,
155 ignored in ARM mode).
156 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
158 2010-09-15 Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
160 * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__.
161 * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__.
162 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is
164 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS
165 is defined but emul_cas.h has not been included.
166 * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo.
168 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
170 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
171 automake-1.11.1 and libtool-2.2.8).
174 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
176 * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
179 2010-05-30 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
181 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use
182 "register long" (instead of "int") for "ret" variable.
183 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace
184 with AO_test_and_set_full (same for AO_HAVE_test_and_set).
185 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full):
186 New function implemented.
188 2010-05-22 Ivan Maidanski <ivmai@mail.ru>
190 * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
192 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
194 2010-05-21 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
196 * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
197 * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
199 2010-04-29 Ivan Maidanski <ivmai@mail.ru>
201 * doc/README_malloc.txt: Fix a typo.
202 * doc/README_stack.txt: Ditto.
204 2010-02-25 Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
206 * .cvsignore: New file.
207 * doc/.cvsignore: Ditto.
208 * src/.cvsignore: Ditto.
209 * src/atomic_ops/.cvsignore: Ditto.
210 * src/atomic_ops/sysdeps/.cvsignore: Ditto.
211 * tests/.cvsignore: Ditto.
213 2010-02-19 Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
215 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full):
216 Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN.
217 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
219 * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined
220 if GCC v4.2+ or Intel compiler v11.1+ (only for amd64).
221 * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel
222 compiler in GCC compatible mode (only for x86 and amd64).
224 2010-02-18 Ivan Maidanski <ivmai@mail.ru>
226 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check
227 for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on
228 all x86_64/amd64 chips); remove the comment.
229 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
230 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only
231 if AO_ASM_X64_AVAILABLE.
232 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
233 Use built-in __sync_bool_compare_and_swap() if GCC v4.2+.
235 2010-02-17 Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
237 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full,
238 AO_compare_double_and_swap_double_full): Use EAX for the result
239 since cmpxchg clobbers it.
240 * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full,
241 AO_compare_double_and_swap_double_full): Ditto.
242 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full,
243 AO_compare_double_and_swap_double_full): Ditto.
244 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full,
245 AO_compare_double_and_swap_double_full): Ditto.
247 2010-02-04 Ivan Maidanski <ivmai@mail.ru>
249 * doc/Makefile.in: Regenerate.
251 2010-02-04 Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
253 * doc/Makefile.am: Remove duplicate file in the list.
255 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
257 * ChangeLog: Fix some typos.
259 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
261 * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
262 Define "i" variable only if used (to suppress a compiler warning).
264 2010-02-02 Ivan Maidanski <ivmai@mail.ru>
266 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix
267 "xchg" data size (remove "l" suffix).
268 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
270 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
272 * src/atomic_ops/sysdeps/sunc/x86.h
273 (AO_compare_double_and_swap_double_full,
274 AO_HAVE_compare_double_and_swap_double_full): Comment out (since
275 not tested, might be wrong, and tickles a bug in some Sun CC
276 versions; besides, __PIC__ macro is never predefined by Sun CC).
278 2010-01-29 Ivan Maidanski <ivmai@mail.ru>
280 * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b,
281 automake-1.11.1, autoconf-2.65).
282 * Makefile.in: Ditto.
285 * config.guess: Ditto.
291 * mkinstalldirs: Ditto.
292 * doc/Makefile.in: Ditto.
293 * src/Makefile.in: Ditto.
294 * src/atomic_ops/Makefile.in: Ditto.
295 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
296 * src/config.h.in: Ditto.
297 * tests/Makefile.in: Ditto.
299 2009-12-19 Ivan Maidanski <ivmai@mail.ru>
301 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
302 AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
304 2009-12-17 Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
306 * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
308 2009-12-04 Ivan Maidanski <ivmai@mail.ru>
310 * configure.ac, README: Change to version 7.2alpha5.
311 * configure: Regenerate.
315 2009-12-02 Ivan Maidanski <ivmai@mail.ru>
317 * configure.ac, README: Change to version 7.2alpha4.
318 * configure: Regenerate.
320 2009-12-01 Ivan Maidanski <ivmai@mail.ru>
322 * configure.ac, README: Change to version 1.3alpha1.
323 * configure: Regenerate.
325 2009-11-21 Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
327 * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
329 * configure: Regenerate.
331 2009-10-06 Ivan Maidanski <ivmai@mail.ru>
333 * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
336 2009-10-05 Ivan Maidanski <ivmai@mail.ru>
338 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
340 2009-10-05 Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
342 * src/atomic_ops/sysdeps/gcc/sh.h: New file.
343 * src/atomic_ops.h: Include gcc/sh.h if __arm__.
344 * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
346 2009-10-02 Ivan Maidanski <ivmai@mail.ru>
348 * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
349 msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
350 entries; order all entries alphabetically.
351 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
353 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
355 * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
356 automake-1.10.2, autoconf-2.64).
358 * Makefile.in: Ditto.
360 * config.guess: Ditto.
366 * mkinstalldirs: Ditto.
367 * doc/Makefile.in: Ditto.
368 * src/config.h.in: Ditto.
369 * src/Makefile.in: Ditto.
370 * src/atomic_ops/Makefile.in: Ditto.
371 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
372 * tests/Makefile.in: Ditto.
374 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
376 * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
377 for the preprocessor directives.
378 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
380 2009-09-30 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
382 * README: Move notes from the hand-edited part of INSTALL which
383 was overwritten by Automake recently.
385 2009-09-26 Ivan Maidanski <ivmai@mail.ru>
387 * aclocal.m4: Regenerate (by autoreconf -vif).
388 * config.guess: Ditto.
392 * Makefile.in: Ditto.
393 * doc/Makefile.in: Ditto.
394 * src/config.h.in: Ditto.
395 * src/Makefile.in: Ditto.
396 * src/atomic_ops/Makefile.in: Ditto.
397 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
398 * tests/Makefile.in: Ditto.
400 2009-09-25 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
402 * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
404 2009-09-16 Ivan Maidanski <ivmai@mail.ru>
406 * ChangeLog: Remove trailing spaces at EOLn.
407 * doc/README.txt: Expand all tabs to spaces; remove trailing
408 spaces at EOLn; remove multiple trailing blank lines.
409 * src/atomic_ops.c: Ditto.
410 * src/atomic_ops.h: Ditto.
411 * src/atomic_ops/generalize-small.h: Ditto.
412 * src/atomic_ops/generalize.h: Ditto.
413 * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
414 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
415 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
416 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
417 * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
418 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
419 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
420 * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
421 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
422 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
423 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
424 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
425 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
426 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
427 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
428 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
429 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
430 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
431 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
432 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
433 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
434 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
435 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
436 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
437 * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
438 * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
439 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
440 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
441 * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
442 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
443 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
444 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
445 * src/atomic_ops/sysdeps/ordered.h: Ditto.
446 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
447 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
448 * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
449 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
450 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
451 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
452 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
453 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
454 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
455 * src/atomic_ops_stack.c: Ditto.
456 * src/atomic_ops_stack.h: Ditto.
457 * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
459 * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
461 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
464 * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
465 (regarding memory barrier).
466 * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
467 AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
468 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
469 AO_test_and_set): Replace FIXME with the comment saying it is
470 emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
471 * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
472 using InterlockedCompareExchange() (assuming the latter has a full
474 * src/atomic_ops/sysdeps/msftc/arm.h: Include
475 all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
476 of pre-ARMv6; add the comment.
478 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
481 * src/atomic_ops/sysdeps/armcc/arm_v6.h
482 (AO_compare_double_and_swap_double): Replace false/true with 0/1.
483 * src/atomic_ops/sysdeps/gcc/arm.h
484 (AO_compare_double_and_swap_double): Ditto.
485 * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
486 predefined macros (6J, 6ZK, 7A, 7M, 7R).
487 * src/atomic_ops/sysdeps/gcc/arm.h
488 (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
489 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
490 Correct the name (convert from the lower case).
491 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
493 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
494 AO_compare_and_swap): Comment out unimplemented code (and the
495 corresponding macros); add FIXME.
496 * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
497 _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
498 pthreads-w32 library); don't include signal.h, sys/time.h,
499 sys/select.h in this case; include windows.h instead.
500 * src/atomic_ops.c (AO_pause): Use Sleep() in case of
501 AO_USE_WIN32_PTHREADS (instead of select()).
502 * src/atomic_ops.c (all_sigs, initialized): Don't define in case
503 of AO_USE_WIN32_PTHREADS.
504 * src/atomic_ops.c (AO_compare_and_swap_emulation,
505 AO_compare_double_and_swap_double_emulation): Don't deal with
506 signals in case of AO_USE_WIN32_PTHREADS.
508 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
511 * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
513 * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
514 * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
516 * src/atomic_ops/sysdeps/msftc/common32_defs.h
517 (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
518 * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
519 declarations to common32_defs.h.
520 * src/atomic_ops/sysdeps/msftc/common32_defs.h
521 (AO_INTERLOCKED_VOLATILE): New macro defined (used by
522 Interlocked-based primitives) for compatibility with older VC++.
523 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
524 missing <intrin.h> if WinCE target.
525 * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
526 (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
527 * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
528 AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
529 AO_compare_and_swap_full): Move arch-independent primitives to
531 * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
532 better CPU (since Interlocked Add and Xchg primitives are available
534 * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
536 * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
538 * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
540 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
543 * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
544 ASSUME_WINDOWS98 with "AO_").
545 * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
547 * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
548 K&R-style function definition with ANSI C one.
549 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
550 Replace AO_TS_SET with its value 0xff (some compilers does not like
551 C enum consts inside inline assembler).
552 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
553 comment about "missing return value" warning.
554 * src/atomic_ops/sysdeps/msftc/x86.h
555 (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
556 * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
557 _InterlockedCompareExchange() with args and result of PVOID type
558 if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
559 DigitalMars compiler support).
560 * src/atomic_ops/sysdeps/msftc/x86.h
561 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
562 variables ("val1" is the lowest part of AO_double_t).
563 * src/atomic_ops/sysdeps/msftc/x86.h
564 (AO_compare_double_and_swap_double_full): Rename to
565 AO_double_compare_and_swap_full (as it has 3 args).
566 * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
569 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
572 * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
574 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
575 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
576 K&R-style function definition with ANSI C one.
577 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
578 * src/atomic_ops/sysdeps/gcc/x86_64.h
579 (AO_compare_double_and_swap_double_full): Fix comment.
580 * src/atomic_ops/sysdeps/gcc/x86_64.h
581 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
582 variables ("val1" is the lowest part of AO_double_t).
583 * src/atomic_ops/sysdeps/msftc/x86_64.h
584 (AO_compare_double_and_swap_double_full): Ditto.
585 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
587 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
589 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
590 "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
591 x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
592 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
593 "standard_ao_double_t.h" (same as in x86_64.h for gcc).
594 * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
595 <intrin.h> assuming at least VC++ v8.
596 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
597 prototypes (since they are always declared in intrin.h).
598 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
599 definition below CAS primitive (to textually group all asm-based
600 primitives together).
601 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
602 Implement for AO_ASM_X64_AVAILABLE case.
603 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
604 macro (replaced with AO_ASM_X64_AVAILABLE).
605 * src/atomic_ops/sysdeps/msftc/x86_64.h
606 (AO_compare_double_and_swap_double_full): Add intrinsic-based
607 implementation for VC++ v9+.
608 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
609 <xmmintrin.h> (and use "__m128" type) if _WIN64.
610 * src/atomic_ops/sysdeps/standard_ao_double_t.h
611 (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
612 "double_ptr_storage" is defined for all cases).
614 2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
616 * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
617 Renamed to AO_NO_SPARC_V9.
619 2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
621 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
622 AO_TS_VAL_t for "oldval" (for 64-bit support).
623 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
624 New function implemented.
626 2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
627 (diff107_cvs, resembling diff78 and diff88_cvs)
629 * src/atomic_ops/sysdeps/sunc/x86.h: New file.
630 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
631 * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
633 * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
634 implementation for VC++ v8+ (include <intrin.h> before it unless
635 WinCE target); use asm-based barrier implementation for Borland,
636 DigitalMars and Watcom.
637 * src/atomic_ops.h: Fix comment (for x86_64).
638 * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
639 headers for Sun C (if not AO_USE_PTHREAD_DEFS).
640 * src/atomic_ops.h: Include VC-specific arch headers for Borland,
641 DigitalMars and Watcom (Win32 target only).
643 2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
644 (diff87_cvs, resembling diff29, diff68, diff78 partly)
646 * doc/README.txt: Remove outdated info about Windows support.
647 * src/atomic_ops/generalize.h (AO_nop_full): Replace
648 K&R-style function definition with ANSI C one.
649 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
650 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
652 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
653 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
654 * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
655 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
656 * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
657 * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
658 * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
659 * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
660 * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
661 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
662 * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
663 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
666 2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
668 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
669 update modifiers to asms, refine clobbers to "cr0", use
670 cr0 instead of cr7, add explicit AO_fetch_and_add,
671 add UNTESTED 64 bit support.
673 2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
675 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
676 AO_compare_and_swap value differently, add
677 AO_compare_double_and_swap_double, some indentation fixes.
678 * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
679 robust and minimize clobbers, Add AO_compare_double_and_swap_double.
681 2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
683 * INSTALL: Add some platform-specific documentation.
684 * src/Makefile.msft: Fix copyright notice.
686 2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
688 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
689 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
690 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
691 * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
692 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
693 * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
694 * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
695 * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
696 * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
697 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
698 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
699 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
700 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
701 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
702 * src/atomic_ops.c: Fix comments.
703 * src/atomic_ops.h: Fix comments.
704 * src/atomic_ops_stack.c: Fix comments.
705 * src/atomic_ops_stack.h: Fix comments.
707 2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
709 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
712 2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
714 * config.guess, config.sub, configure: Regenerate/replace.
715 Use autoconf 2.61, automake 1.9.6.
717 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
719 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
722 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
724 * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
726 2008-07-24 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
728 * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
729 Add parentheses around addr arg for various functions.
731 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
733 * src/atomic_ops/sysdeps/gcc/powerpc.h:
734 Add const to first parameter of load calls (forgot one).
736 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
738 * doc/README.txt, src/atomic_ops/generalize.h,
739 src/atomic_ops/generalize-small.template,
740 src/atomic_ops/generalize-small.h,
741 src/atomic_ops/sysdeps/acquire_release_volatile.h,
742 src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
743 src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
744 src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
745 src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
746 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
747 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
748 src/atomic_ops/sysdeps/ao_t_is_int.h,
749 src/atomic_ops/sysdeps/atomic_load_store.h,
750 src/atomic_ops/sysdeps/char_atomic_load_store.h,
751 src/atomic_ops/sysdeps/int_atomic_load_store.h,
752 src/atomic_ops/sysdeps/short_atomic_load_store.h,
753 src/atomic_ops/sysdeps/generic_pthread.h,
754 src/atomic_ops/sysdeps/read_ordered.h,
755 src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
756 src/atomic_ops/sysdeps/gcc/arm.h,
757 src/atomic_ops/sysdeps/icc/ia64.h,
758 src/atomic_ops/sysdeps/ibmc/powerpc.h:
759 Add const to first parameter of load calls.
761 2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
763 * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
764 AO_or_full, and let it be autogenerated instead.
766 2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
768 * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
769 fixing a merge accident.
771 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
774 * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
777 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
780 * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
781 src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
782 * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
783 on char, align AO_t. Add cas, or.
784 * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
785 * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
786 * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
787 tests/Makefile.in: Regenerate.
789 2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
790 (Really Ian Wienand & Debian maintainers)
792 * src/atomic_ops/sysdeps/gcc/x86.h
793 (AO_compare_double_and_swap_double_full): Correctly account for
796 2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
798 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
799 double_ptr_storage default to long long; define everywhere.
801 2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
803 * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
804 compare_double_and_swap_double.
806 2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
808 * src/atomic_ops/generalize.h: Add test_and_set generalizations,
809 Add AO_double_compare_and_swap generalizations.
810 * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
811 * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
812 * src/atomic_ops/sysdeps/gcc/x86.h,
813 src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
814 compare_double_and_swap_double, commented out for msftc.
815 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add
816 double_ptr_storage field.
818 2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
819 (Merge from separate atomic_ops tree)
821 * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
822 double-width cas, and fix its implementation.
823 * doc/README.txt: Clarify use of _full. Add more warnings about
826 2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
828 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
829 %X1 modifier to support indexed addressing.
831 2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
833 * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
836 2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
838 * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
841 2007-06-26 Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
843 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
846 2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
848 * src/atomic_ops.h: include stddef.h
850 2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
852 * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
853 * src/atomic_ops.h: Add test for msftc/x86_64.h.
854 * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
855 * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
856 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
857 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
858 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
859 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
860 Replace unsigned long cast with size_t.
862 2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
864 * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
867 2007-05-14 Hans Boehm <Hans.Boehm@hp.com>
869 * doc/README.txt: Update to reflect C++0x effort.
871 2007-05-07 Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
873 * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
875 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
878 2006-11-09 Earl Chew (Agilent)
880 * msftc/x86.h: Follow Microsoft documentation and include
885 2006-07-11 Hans Boehm <Hans.Boehm@hp.com>
887 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
889 2006-03-28 Earl Chew (Agilent)
891 * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
892 * src/atomic_ops/sysdeps/msftc/x86.h:
893 Use new intrinsics available in MSVC 2003 and MSVC 2005.
894 Use inline assembler to generate mfence and byte sized xchg
895 Use correct prototype for InterlockedCompareExchange.
896 * src/atomic_ops.h: Add test for __PPC__ .
897 * tests/run_parallel.inc: Add simple VxWorks support.
898 * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
899 to silence compiler warnings.
901 2006-11-13 Hans Boehm <Hans.Boehm@hp.com>
903 * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
904 * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
906 2005-11-04 Hans Boehm <Hans.Boehm@hp.com>
908 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
909 all_acquire_release_volatile.h, instead of just the pointer-sized
911 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
912 all_acquire_release_volatile.h and all_atomic_load_store.h,
913 instead of just the pointer-sized versions.
917 2005-09-27 Hans Boehm <Hans.Boehm@hp.com>
919 * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
920 * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
922 * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
923 instead of duplicating it.
924 * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
926 2005-09-16 Hans Boehm <Hans.Boehm@hp.com>
928 * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
929 definition with one that might actually work. (Thanks to Kazu
930 Hirata and Paul Brook.)
932 2005-08-01 Hans Boehm <Hans.Boehm@hp.com>
934 * src/atomic_ops/Makefile.am: Change function naming from "byte" to
939 2005-03-21 Hans Boehm <Hans.Boehm@hp.com>
940 Fix various acquire_release_volatile.h files to reflect the fact
941 that both icc and gcc seem to reorder ordinary memory accesses around
942 volatile accesses early in the compilation. Modify the acquire
943 release test to catch this problem (with high probability, and only on
946 2005-03 Hans Boehm <Hans.Boehm@hp.com>
947 Fixes for recently introduced bugs. Update x86 and x86-64 assembly
948 syntax to deal with complaints by some recent gcc versions.
950 2005-02 Hans Boehm <Hans.Boehm@hp.com>
951 Added libatomic_ops_gpl library with support for mostly
952 lock-free stack and malloc().
954 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
955 Hans Boehm <Hans.Boehm@hp.com>
956 Use autoconf, automake, starting with code from Debian package.
959 2005-01 Hans Boehm <Hans.Boehm@hp.com>
960 * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
961 Change most platforms to use byte-wide test-and-set locations.
963 2005-01 Hans Boehm <Hans.Boehm@hp.com>
964 * ao_t_is_int.h: Add to trivially support int-wide operations
965 on platforms with int-sized pointers.
967 2004-12 Hans Boehm <Hans.Boehm@hp.com>
968 * gcc/powerpc.h: First serious attempt to support PowerPC (with
969 help from Maged Michael and others).
971 2004-12 Hans Boehm <Hans.Boehm@hp.com>
972 * sunc/sparc.[hS]: Added minimal support for the Sun SPARC compiler.
973 * atomic_ops_sysdeps.S: Add support for platforms that require
974 out-of-line assembly code.
976 2004-10 Hans Boehm <Hans.Boehm@hp.com>
977 More work on char, short, int sized data. Add both
978 compare_double_and_swap_double and compare_and_swap_double.
979 Typically each platform will provide at most one of these.
981 2004-07-02 Ranko Zivojnovic
982 Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
984 2004-06 Hans Boehm <Hans.Boehm@hp.com>
985 Start to add atomic_ops primitives for different sized data.
987 2003-12-18 Hans Boehm <Hans.Boehm@hp.com>
989 * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
990 Fix support for ecc on IA64. Remove compiler_barrier workaround
991 for gcc 3.4 and later.
993 2003-12-17 Hans Boehm <Hans.Boehm@hp.com>
995 * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
996 atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
997 Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
998 for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
999 compiler on PA_RISC and IA64.
1001 2003-12-09 Hans Boehm <Hans.Boehm@hp.com>
1003 * many: Install under "atomic_ops" instead of "ao".
1004 Change atomic_ops include file structure. Auxiliary include
1005 files are all under include/atomic_ops.
1006 Fix (hopefully) "make dist" in atomic_ops distribution.
1007 Renamed various types to end in _t, though the old versions
1008 are still defined for backward compatibility.
1010 2003-12-08 Carlos O'Donell <carlos@baldric.uwo.ca>
1012 * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
1013 AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
1014 helper macros. AO_test_and_set_full uses helper macros.
1017 Started sometime after version 0.4 release. Currently the format is
1018 informal. Eventually should become more GNU-like.