1 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
3 * src/atomic_ops/sysdeps/gcc/arm.h
4 (AO_compare_double_and_swap_double,
5 AO_HAVE_compare_double_and_swap_double): Define only starting from
7 * src/atomic_ops/sysdeps/gcc/arm.h
8 (AO_compare_double_and_swap_double): Fix function name in
9 assembler code; replace while (1) loop with "do-while".
11 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
13 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full):
14 Specify "%b0" (instead of "%0") in "xchg" instruction (to
15 workaround a bug in Sun C 5.11).
16 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
19 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
21 * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
22 Sun C compiler (call "release" variant of AO_store).
24 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
26 * configure.ac (_PTHREADS): New template (used for NetBSD).
27 * configure.ac (THREADDLLIBS): New macro.
28 * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD,
29 test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS
30 instead of "-lpthread".
31 * configure: Regenerate.
33 * doc/Makefile.in: Ditto.
34 * src/Makefile.in: Ditto.
35 * src/atomic_ops/Makefile.in: Ditto.
36 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
37 * src/config.h.in: Ditto.
38 * tests/Makefile.in: Ditto.
40 2011-05-30 Ivan Maidanski <ivmai@mail.ru>
42 * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not
43 define the corresponding macro.
44 * configure.ac: Don't check for GCC twice.
45 * configure: Regenerate.
46 * tests/test_malloc.c (DEFAULT_NTHREADS): New macro.
47 * tests/test_malloc.c (run_one_test): Refine printed message (in
49 * tests/test_malloc.c (main): Use DEFAULT_NTHREADS.
50 * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer.
51 * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS,
52 OPT_MAP_ANON): New macro.
53 * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as
54 file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON).
55 * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON,
56 GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open()
59 2011-05-11 Ivan Maidanski <ivmai@mail.ru>
61 * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
63 * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and
64 LARGE_OBJ_SIZE, respectively.
65 * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH,
66 LARGE_OBJ_SIZE): Do not define unless undefined.
67 * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST
70 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
72 * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
74 * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
76 * tests/Makefile.am: Remove trailing spaces at EOLn.
77 * tests/Makefile.in: Regenerate.
79 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
81 * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
83 * tests/test_stack.c: Expand all tabs to spaces.
84 * tests/test_atomic_include.h: Ditto.
85 * tests/test_stack.c (main): Free pop'ed elements.
86 * tests/test_atomic_include.h (test_atomic, test_atomic_release,
87 test_atomic_acquire, test_atomic_read, test_atomic_write,
88 test_atomic_full, test_atomic_release_write,
89 test_atomic_acquire_read): Remove prototype.
91 2011-04-22 Ivan Maidanski <ivmai@mail.ru>
93 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
94 asm; remove redundant trailing ';'.
96 2011-04-11 Ivan Maidanski <ivmai@mail.ru> (really Jim Meyering)
98 * doc/README.txt: Remove doubled words in comments.
100 2011-03-18 Ivan Maidanski <ivmai@mail.ru>
102 * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
103 ARM chips instead of all the currently existing v6+ ones.
105 2011-03-13 Ivan Maidanski <ivmai@mail.ru>
107 * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
108 expand all tabs to spaces.
109 * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
110 Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug).
111 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
114 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
116 * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl.
117 * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in
118 a conditional expression) to prevent a compiler warning.
119 * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove
120 trailing spaces at EOLn.
122 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
124 * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
125 AO_USE_NANOSLEEP for NaCl.
127 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
129 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
130 automake-1.11.1 and libtool-2.4).
133 2011-02-09 Ivan Maidanski <ivmai@mail.ru>
135 * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
137 * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
139 * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS.
140 * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP.
141 * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code.
142 * src/atomic_ops.c (AO_pause): Use nanosleep() if
144 * src/atomic_ops.c (all_sigs, initialized,
145 AO_compare_and_swap_emulation,
146 AO_compare_double_and_swap_double_emulation): Use
147 AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS.
149 2011-01-07 Ivan Maidanski <ivmai@mail.ru>
151 * src/.cvsignore: Add more auto-generated files.
152 * tests/.cvsignore: Ditto.
153 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store,
154 AO_compare_double_and_swap_double): Reformat code.
155 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
156 AO_compare_double_and_swap_double): Ditto.
157 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
158 Produce "it eq" instruction only for Thumb mode.
159 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
161 2010-11-23 Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
163 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
164 Insert "it eq" just before "strexeq" (required for Thumb-2 mode,
165 ignored in ARM mode).
166 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
168 2010-09-15 Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
170 * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__.
171 * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__.
172 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is
174 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS
175 is defined but emul_cas.h has not been included.
176 * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo.
178 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
180 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
181 automake-1.11.1 and libtool-2.2.8).
184 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
186 * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
189 2010-05-30 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
191 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use
192 "register long" (instead of "int") for "ret" variable.
193 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace
194 with AO_test_and_set_full (same for AO_HAVE_test_and_set).
195 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full):
196 New function implemented.
198 2010-05-22 Ivan Maidanski <ivmai@mail.ru>
200 * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
202 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
204 2010-05-21 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
206 * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
207 * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
209 2010-04-29 Ivan Maidanski <ivmai@mail.ru>
211 * doc/README_malloc.txt: Fix a typo.
212 * doc/README_stack.txt: Ditto.
214 2010-02-25 Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
216 * .cvsignore: New file.
217 * doc/.cvsignore: Ditto.
218 * src/.cvsignore: Ditto.
219 * src/atomic_ops/.cvsignore: Ditto.
220 * src/atomic_ops/sysdeps/.cvsignore: Ditto.
221 * tests/.cvsignore: Ditto.
223 2010-02-19 Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
225 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full):
226 Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN.
227 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
229 * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined
230 if GCC v4.2+ or Intel compiler v11.1+ (only for amd64).
231 * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel
232 compiler in GCC compatible mode (only for x86 and amd64).
234 2010-02-18 Ivan Maidanski <ivmai@mail.ru>
236 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check
237 for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on
238 all x86_64/amd64 chips); remove the comment.
239 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
240 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only
241 if AO_ASM_X64_AVAILABLE.
242 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
243 Use built-in __sync_bool_compare_and_swap() if GCC v4.2+.
245 2010-02-17 Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
247 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full,
248 AO_compare_double_and_swap_double_full): Use EAX for the result
249 since cmpxchg clobbers it.
250 * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full,
251 AO_compare_double_and_swap_double_full): Ditto.
252 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full,
253 AO_compare_double_and_swap_double_full): Ditto.
254 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full,
255 AO_compare_double_and_swap_double_full): Ditto.
257 2010-02-04 Ivan Maidanski <ivmai@mail.ru>
259 * doc/Makefile.in: Regenerate.
261 2010-02-04 Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
263 * doc/Makefile.am: Remove duplicate file in the list.
265 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
267 * ChangeLog: Fix some typos.
269 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
271 * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
272 Define "i" variable only if used (to suppress a compiler warning).
274 2010-02-02 Ivan Maidanski <ivmai@mail.ru>
276 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix
277 "xchg" data size (remove "l" suffix).
278 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
280 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
282 * src/atomic_ops/sysdeps/sunc/x86.h
283 (AO_compare_double_and_swap_double_full,
284 AO_HAVE_compare_double_and_swap_double_full): Comment out (since
285 not tested, might be wrong, and tickles a bug in some Sun CC
286 versions; besides, __PIC__ macro is never predefined by Sun CC).
288 2010-01-29 Ivan Maidanski <ivmai@mail.ru>
290 * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b,
291 automake-1.11.1, autoconf-2.65).
292 * Makefile.in: Ditto.
295 * config.guess: Ditto.
301 * mkinstalldirs: Ditto.
302 * doc/Makefile.in: Ditto.
303 * src/Makefile.in: Ditto.
304 * src/atomic_ops/Makefile.in: Ditto.
305 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
306 * src/config.h.in: Ditto.
307 * tests/Makefile.in: Ditto.
309 2009-12-19 Ivan Maidanski <ivmai@mail.ru>
311 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
312 AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
314 2009-12-17 Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
316 * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
318 2009-12-04 Ivan Maidanski <ivmai@mail.ru>
320 * configure.ac, README: Change to version 7.2alpha5.
321 * configure: Regenerate.
325 2009-12-02 Ivan Maidanski <ivmai@mail.ru>
327 * configure.ac, README: Change to version 7.2alpha4.
328 * configure: Regenerate.
330 2009-12-01 Ivan Maidanski <ivmai@mail.ru>
332 * configure.ac, README: Change to version 1.3alpha1.
333 * configure: Regenerate.
335 2009-11-21 Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
337 * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
339 * configure: Regenerate.
341 2009-10-06 Ivan Maidanski <ivmai@mail.ru>
343 * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
346 2009-10-05 Ivan Maidanski <ivmai@mail.ru>
348 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
350 2009-10-05 Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
352 * src/atomic_ops/sysdeps/gcc/sh.h: New file.
353 * src/atomic_ops.h: Include gcc/sh.h if __arm__.
354 * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
356 2009-10-02 Ivan Maidanski <ivmai@mail.ru>
358 * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
359 msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
360 entries; order all entries alphabetically.
361 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
363 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
365 * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
366 automake-1.10.2, autoconf-2.64).
368 * Makefile.in: Ditto.
370 * config.guess: Ditto.
376 * mkinstalldirs: Ditto.
377 * doc/Makefile.in: Ditto.
378 * src/config.h.in: Ditto.
379 * src/Makefile.in: Ditto.
380 * src/atomic_ops/Makefile.in: Ditto.
381 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
382 * tests/Makefile.in: Ditto.
384 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
386 * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
387 for the preprocessor directives.
388 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
390 2009-09-30 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
392 * README: Move notes from the hand-edited part of INSTALL which
393 was overwritten by Automake recently.
395 2009-09-26 Ivan Maidanski <ivmai@mail.ru>
397 * aclocal.m4: Regenerate (by autoreconf -vif).
398 * config.guess: Ditto.
402 * Makefile.in: Ditto.
403 * doc/Makefile.in: Ditto.
404 * src/config.h.in: Ditto.
405 * src/Makefile.in: Ditto.
406 * src/atomic_ops/Makefile.in: Ditto.
407 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
408 * tests/Makefile.in: Ditto.
410 2009-09-25 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
412 * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
414 2009-09-16 Ivan Maidanski <ivmai@mail.ru>
416 * ChangeLog: Remove trailing spaces at EOLn.
417 * doc/README.txt: Expand all tabs to spaces; remove trailing
418 spaces at EOLn; remove multiple trailing blank lines.
419 * src/atomic_ops.c: Ditto.
420 * src/atomic_ops.h: Ditto.
421 * src/atomic_ops/generalize-small.h: Ditto.
422 * src/atomic_ops/generalize.h: Ditto.
423 * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
424 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
425 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
426 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
427 * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
428 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
429 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
430 * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
431 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
432 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
433 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
434 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
435 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
436 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
437 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
438 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
439 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
440 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
441 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
442 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
443 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
444 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
445 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
446 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
447 * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
448 * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
449 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
450 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
451 * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
452 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
453 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
454 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
455 * src/atomic_ops/sysdeps/ordered.h: Ditto.
456 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
457 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
458 * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
459 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
460 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
461 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
462 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
463 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
464 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
465 * src/atomic_ops_stack.c: Ditto.
466 * src/atomic_ops_stack.h: Ditto.
467 * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
469 * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
471 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
474 * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
475 (regarding memory barrier).
476 * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
477 AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
478 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
479 AO_test_and_set): Replace FIXME with the comment saying it is
480 emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
481 * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
482 using InterlockedCompareExchange() (assuming the latter has a full
484 * src/atomic_ops/sysdeps/msftc/arm.h: Include
485 all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
486 of pre-ARMv6; add the comment.
488 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
491 * src/atomic_ops/sysdeps/armcc/arm_v6.h
492 (AO_compare_double_and_swap_double): Replace false/true with 0/1.
493 * src/atomic_ops/sysdeps/gcc/arm.h
494 (AO_compare_double_and_swap_double): Ditto.
495 * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
496 predefined macros (6J, 6ZK, 7A, 7M, 7R).
497 * src/atomic_ops/sysdeps/gcc/arm.h
498 (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
499 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
500 Correct the name (convert from the lower case).
501 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
503 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
504 AO_compare_and_swap): Comment out unimplemented code (and the
505 corresponding macros); add FIXME.
506 * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
507 _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
508 pthreads-w32 library); don't include signal.h, sys/time.h,
509 sys/select.h in this case; include windows.h instead.
510 * src/atomic_ops.c (AO_pause): Use Sleep() in case of
511 AO_USE_WIN32_PTHREADS (instead of select()).
512 * src/atomic_ops.c (all_sigs, initialized): Don't define in case
513 of AO_USE_WIN32_PTHREADS.
514 * src/atomic_ops.c (AO_compare_and_swap_emulation,
515 AO_compare_double_and_swap_double_emulation): Don't deal with
516 signals in case of AO_USE_WIN32_PTHREADS.
518 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
521 * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
523 * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
524 * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
526 * src/atomic_ops/sysdeps/msftc/common32_defs.h
527 (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
528 * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
529 declarations to common32_defs.h.
530 * src/atomic_ops/sysdeps/msftc/common32_defs.h
531 (AO_INTERLOCKED_VOLATILE): New macro defined (used by
532 Interlocked-based primitives) for compatibility with older VC++.
533 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
534 missing <intrin.h> if WinCE target.
535 * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
536 (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
537 * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
538 AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
539 AO_compare_and_swap_full): Move arch-independent primitives to
541 * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
542 better CPU (since Interlocked Add and Xchg primitives are available
544 * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
546 * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
548 * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
550 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
553 * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
554 ASSUME_WINDOWS98 with "AO_").
555 * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
557 * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
558 K&R-style function definition with ANSI C one.
559 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
560 Replace AO_TS_SET with its value 0xff (some compilers does not like
561 C enum consts inside inline assembler).
562 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
563 comment about "missing return value" warning.
564 * src/atomic_ops/sysdeps/msftc/x86.h
565 (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
566 * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
567 _InterlockedCompareExchange() with args and result of PVOID type
568 if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
569 DigitalMars compiler support).
570 * src/atomic_ops/sysdeps/msftc/x86.h
571 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
572 variables ("val1" is the lowest part of AO_double_t).
573 * src/atomic_ops/sysdeps/msftc/x86.h
574 (AO_compare_double_and_swap_double_full): Rename to
575 AO_double_compare_and_swap_full (as it has 3 args).
576 * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
579 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
582 * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
584 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
585 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
586 K&R-style function definition with ANSI C one.
587 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
588 * src/atomic_ops/sysdeps/gcc/x86_64.h
589 (AO_compare_double_and_swap_double_full): Fix comment.
590 * src/atomic_ops/sysdeps/gcc/x86_64.h
591 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
592 variables ("val1" is the lowest part of AO_double_t).
593 * src/atomic_ops/sysdeps/msftc/x86_64.h
594 (AO_compare_double_and_swap_double_full): Ditto.
595 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
597 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
599 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
600 "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
601 x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
602 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
603 "standard_ao_double_t.h" (same as in x86_64.h for gcc).
604 * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
605 <intrin.h> assuming at least VC++ v8.
606 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
607 prototypes (since they are always declared in intrin.h).
608 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
609 definition below CAS primitive (to textually group all asm-based
610 primitives together).
611 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
612 Implement for AO_ASM_X64_AVAILABLE case.
613 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
614 macro (replaced with AO_ASM_X64_AVAILABLE).
615 * src/atomic_ops/sysdeps/msftc/x86_64.h
616 (AO_compare_double_and_swap_double_full): Add intrinsic-based
617 implementation for VC++ v9+.
618 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
619 <xmmintrin.h> (and use "__m128" type) if _WIN64.
620 * src/atomic_ops/sysdeps/standard_ao_double_t.h
621 (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
622 "double_ptr_storage" is defined for all cases).
624 2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
626 * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
627 Renamed to AO_NO_SPARC_V9.
629 2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
631 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
632 AO_TS_VAL_t for "oldval" (for 64-bit support).
633 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
634 New function implemented.
636 2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
637 (diff107_cvs, resembling diff78 and diff88_cvs)
639 * src/atomic_ops/sysdeps/sunc/x86.h: New file.
640 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
641 * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
643 * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
644 implementation for VC++ v8+ (include <intrin.h> before it unless
645 WinCE target); use asm-based barrier implementation for Borland,
646 DigitalMars and Watcom.
647 * src/atomic_ops.h: Fix comment (for x86_64).
648 * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
649 headers for Sun C (if not AO_USE_PTHREAD_DEFS).
650 * src/atomic_ops.h: Include VC-specific arch headers for Borland,
651 DigitalMars and Watcom (Win32 target only).
653 2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
654 (diff87_cvs, resembling diff29, diff68, diff78 partly)
656 * doc/README.txt: Remove outdated info about Windows support.
657 * src/atomic_ops/generalize.h (AO_nop_full): Replace
658 K&R-style function definition with ANSI C one.
659 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
660 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
662 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
663 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
664 * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
665 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
666 * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
667 * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
668 * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
669 * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
670 * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
671 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
672 * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
673 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
676 2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
678 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
679 update modifiers to asms, refine clobbers to "cr0", use
680 cr0 instead of cr7, add explicit AO_fetch_and_add,
681 add UNTESTED 64 bit support.
683 2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
685 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
686 AO_compare_and_swap value differently, add
687 AO_compare_double_and_swap_double, some indentation fixes.
688 * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
689 robust and minimize clobbers, Add AO_compare_double_and_swap_double.
691 2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
693 * INSTALL: Add some platform-specific documentation.
694 * src/Makefile.msft: Fix copyright notice.
696 2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
698 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
699 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
700 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
701 * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
702 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
703 * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
704 * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
705 * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
706 * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
707 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
708 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
709 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
710 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
711 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
712 * src/atomic_ops.c: Fix comments.
713 * src/atomic_ops.h: Fix comments.
714 * src/atomic_ops_stack.c: Fix comments.
715 * src/atomic_ops_stack.h: Fix comments.
717 2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
719 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
722 2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
724 * config.guess, config.sub, configure: Regenerate/replace.
725 Use autoconf 2.61, automake 1.9.6.
727 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
729 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
732 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
734 * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
736 2008-07-24 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
738 * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
739 Add parentheses around addr arg for various functions.
741 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
743 * src/atomic_ops/sysdeps/gcc/powerpc.h:
744 Add const to first parameter of load calls (forgot one).
746 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
748 * doc/README.txt, src/atomic_ops/generalize.h,
749 src/atomic_ops/generalize-small.template,
750 src/atomic_ops/generalize-small.h,
751 src/atomic_ops/sysdeps/acquire_release_volatile.h,
752 src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
753 src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
754 src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
755 src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
756 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
757 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
758 src/atomic_ops/sysdeps/ao_t_is_int.h,
759 src/atomic_ops/sysdeps/atomic_load_store.h,
760 src/atomic_ops/sysdeps/char_atomic_load_store.h,
761 src/atomic_ops/sysdeps/int_atomic_load_store.h,
762 src/atomic_ops/sysdeps/short_atomic_load_store.h,
763 src/atomic_ops/sysdeps/generic_pthread.h,
764 src/atomic_ops/sysdeps/read_ordered.h,
765 src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
766 src/atomic_ops/sysdeps/gcc/arm.h,
767 src/atomic_ops/sysdeps/icc/ia64.h,
768 src/atomic_ops/sysdeps/ibmc/powerpc.h:
769 Add const to first parameter of load calls.
771 2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
773 * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
774 AO_or_full, and let it be autogenerated instead.
776 2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
778 * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
779 fixing a merge accident.
781 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
784 * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
787 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
790 * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
791 src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
792 * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
793 on char, align AO_t. Add cas, or.
794 * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
795 * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
796 * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
797 tests/Makefile.in: Regenerate.
799 2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
800 (Really Ian Wienand & Debian maintainers)
802 * src/atomic_ops/sysdeps/gcc/x86.h
803 (AO_compare_double_and_swap_double_full): Correctly account for
806 2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
808 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
809 double_ptr_storage default to long long; define everywhere.
811 2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
813 * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
814 compare_double_and_swap_double.
816 2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
818 * src/atomic_ops/generalize.h: Add test_and_set generalizations,
819 Add AO_double_compare_and_swap generalizations.
820 * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
821 * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
822 * src/atomic_ops/sysdeps/gcc/x86.h,
823 src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
824 compare_double_and_swap_double, commented out for msftc.
825 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add
826 double_ptr_storage field.
828 2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
829 (Merge from separate atomic_ops tree)
831 * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
832 double-width cas, and fix its implementation.
833 * doc/README.txt: Clarify use of _full. Add more warnings about
836 2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
838 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
839 %X1 modifier to support indexed addressing.
841 2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
843 * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
846 2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
848 * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
851 2007-06-26 Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
853 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
856 2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
858 * src/atomic_ops.h: include stddef.h
860 2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
862 * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
863 * src/atomic_ops.h: Add test for msftc/x86_64.h.
864 * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
865 * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
866 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
867 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
868 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
869 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
870 Replace unsigned long cast with size_t.
872 2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
874 * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
877 2007-05-14 Hans Boehm <Hans.Boehm@hp.com>
879 * doc/README.txt: Update to reflect C++0x effort.
881 2007-05-07 Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
883 * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
885 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
888 2006-11-09 Earl Chew (Agilent)
890 * msftc/x86.h: Follow Microsoft documentation and include
895 2006-07-11 Hans Boehm <Hans.Boehm@hp.com>
897 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
899 2006-03-28 Earl Chew (Agilent)
901 * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
902 * src/atomic_ops/sysdeps/msftc/x86.h:
903 Use new intrinsics available in MSVC 2003 and MSVC 2005.
904 Use inline assembler to generate mfence and byte sized xchg
905 Use correct prototype for InterlockedCompareExchange.
906 * src/atomic_ops.h: Add test for __PPC__ .
907 * tests/run_parallel.inc: Add simple VxWorks support.
908 * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
909 to silence compiler warnings.
911 2006-11-13 Hans Boehm <Hans.Boehm@hp.com>
913 * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
914 * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
916 2005-11-04 Hans Boehm <Hans.Boehm@hp.com>
918 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
919 all_acquire_release_volatile.h, instead of just the pointer-sized
921 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
922 all_acquire_release_volatile.h and all_atomic_load_store.h,
923 instead of just the pointer-sized versions.
927 2005-09-27 Hans Boehm <Hans.Boehm@hp.com>
929 * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
930 * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
932 * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
933 instead of duplicating it.
934 * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
936 2005-09-16 Hans Boehm <Hans.Boehm@hp.com>
938 * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
939 definition with one that might actually work. (Thanks to Kazu
940 Hirata and Paul Brook.)
942 2005-08-01 Hans Boehm <Hans.Boehm@hp.com>
944 * src/atomic_ops/Makefile.am: Change function naming from "byte" to
949 2005-03-21 Hans Boehm <Hans.Boehm@hp.com>
950 Fix various acquire_release_volatile.h files to reflect the fact
951 that both icc and gcc seem to reorder ordinary memory accesses around
952 volatile accesses early in the compilation. Modify the acquire
953 release test to catch this problem (with high probability, and only on
956 2005-03 Hans Boehm <Hans.Boehm@hp.com>
957 Fixes for recently introduced bugs. Update x86 and x86-64 assembly
958 syntax to deal with complaints by some recent gcc versions.
960 2005-02 Hans Boehm <Hans.Boehm@hp.com>
961 Added libatomic_ops_gpl library with support for mostly
962 lock-free stack and malloc().
964 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
965 Hans Boehm <Hans.Boehm@hp.com>
966 Use autoconf, automake, starting with code from Debian package.
969 2005-01 Hans Boehm <Hans.Boehm@hp.com>
970 * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
971 Change most platforms to use byte-wide test-and-set locations.
973 2005-01 Hans Boehm <Hans.Boehm@hp.com>
974 * ao_t_is_int.h: Add to trivially support int-wide operations
975 on platforms with int-sized pointers.
977 2004-12 Hans Boehm <Hans.Boehm@hp.com>
978 * gcc/powerpc.h: First serious attempt to support PowerPC (with
979 help from Maged Michael and others).
981 2004-12 Hans Boehm <Hans.Boehm@hp.com>
982 * sunc/sparc.[hS]: Added minimal support for the Sun SPARC compiler.
983 * atomic_ops_sysdeps.S: Add support for platforms that require
984 out-of-line assembly code.
986 2004-10 Hans Boehm <Hans.Boehm@hp.com>
987 More work on char, short, int sized data. Add both
988 compare_double_and_swap_double and compare_and_swap_double.
989 Typically each platform will provide at most one of these.
991 2004-07-02 Ranko Zivojnovic
992 Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
994 2004-06 Hans Boehm <Hans.Boehm@hp.com>
995 Start to add atomic_ops primitives for different sized data.
997 2003-12-18 Hans Boehm <Hans.Boehm@hp.com>
999 * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
1000 Fix support for ecc on IA64. Remove compiler_barrier workaround
1001 for gcc 3.4 and later.
1003 2003-12-17 Hans Boehm <Hans.Boehm@hp.com>
1005 * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
1006 atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
1007 Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
1008 for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
1009 compiler on PA_RISC and IA64.
1011 2003-12-09 Hans Boehm <Hans.Boehm@hp.com>
1013 * many: Install under "atomic_ops" instead of "ao".
1014 Change atomic_ops include file structure. Auxiliary include
1015 files are all under include/atomic_ops.
1016 Fix (hopefully) "make dist" in atomic_ops distribution.
1017 Renamed various types to end in _t, though the old versions
1018 are still defined for backward compatibility.
1020 2003-12-08 Carlos O'Donell <carlos@baldric.uwo.ca>
1022 * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
1023 AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
1024 helper macros. AO_test_and_set_full uses helper macros.
1027 Started sometime after version 0.4 release. Currently the format is
1028 informal. Eventually should become more GNU-like.