1 2011-06-02 Ivan Maidanski <ivmai@mail.ru>
3 * tests/test_malloc.c (main): Remove unused "exper_n" local
5 * tests/test_stack.c (run_one_test): Remove unused "aux" local
8 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
10 * src/atomic_ops/sysdeps/gcc/arm.h
11 (AO_compare_double_and_swap_double,
12 AO_HAVE_compare_double_and_swap_double): Define only starting from
14 * src/atomic_ops/sysdeps/gcc/arm.h
15 (AO_compare_double_and_swap_double): Fix function name in
16 assembler code; replace while (1) loop with "do-while".
18 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
20 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full):
21 Specify "%b0" (instead of "%0") in "xchg" instruction (to
22 workaround a bug in Sun C 5.11).
23 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
26 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
28 * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
29 Sun C compiler (call "release" variant of AO_store).
31 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
33 * configure.ac (_PTHREADS): New template (used for NetBSD).
34 * configure.ac (THREADDLLIBS): New macro.
35 * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD,
36 test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS
37 instead of "-lpthread".
38 * configure: Regenerate.
40 * doc/Makefile.in: Ditto.
41 * src/Makefile.in: Ditto.
42 * src/atomic_ops/Makefile.in: Ditto.
43 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
44 * src/config.h.in: Ditto.
45 * tests/Makefile.in: Ditto.
47 2011-05-30 Ivan Maidanski <ivmai@mail.ru>
49 * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not
50 define the corresponding macro.
51 * configure.ac: Don't check for GCC twice.
52 * configure: Regenerate.
53 * tests/test_malloc.c (DEFAULT_NTHREADS): New macro.
54 * tests/test_malloc.c (run_one_test): Refine printed message (in
56 * tests/test_malloc.c (main): Use DEFAULT_NTHREADS.
57 * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer.
58 * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS,
59 OPT_MAP_ANON): New macro.
60 * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as
61 file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON).
62 * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON,
63 GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open()
66 2011-05-11 Ivan Maidanski <ivmai@mail.ru>
68 * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
70 * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and
71 LARGE_OBJ_SIZE, respectively.
72 * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH,
73 LARGE_OBJ_SIZE): Do not define unless undefined.
74 * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST
77 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
79 * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
81 * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
83 * tests/Makefile.am: Remove trailing spaces at EOLn.
84 * tests/Makefile.in: Regenerate.
86 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
88 * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
90 * tests/test_stack.c: Expand all tabs to spaces.
91 * tests/test_atomic_include.h: Ditto.
92 * tests/test_stack.c (main): Free pop'ed elements.
93 * tests/test_atomic_include.h (test_atomic, test_atomic_release,
94 test_atomic_acquire, test_atomic_read, test_atomic_write,
95 test_atomic_full, test_atomic_release_write,
96 test_atomic_acquire_read): Remove prototype.
98 2011-04-22 Ivan Maidanski <ivmai@mail.ru>
100 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
101 asm; remove redundant trailing ';'.
103 2011-04-11 Ivan Maidanski <ivmai@mail.ru> (really Jim Meyering)
105 * doc/README.txt: Remove doubled words in comments.
107 2011-03-18 Ivan Maidanski <ivmai@mail.ru>
109 * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
110 ARM chips instead of all the currently existing v6+ ones.
112 2011-03-13 Ivan Maidanski <ivmai@mail.ru>
114 * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
115 expand all tabs to spaces.
116 * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
117 Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug).
118 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
121 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
123 * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl.
124 * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in
125 a conditional expression) to prevent a compiler warning.
126 * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove
127 trailing spaces at EOLn.
129 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
131 * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
132 AO_USE_NANOSLEEP for NaCl.
134 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
136 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
137 automake-1.11.1 and libtool-2.4).
140 2011-02-09 Ivan Maidanski <ivmai@mail.ru>
142 * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
144 * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
146 * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS.
147 * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP.
148 * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code.
149 * src/atomic_ops.c (AO_pause): Use nanosleep() if
151 * src/atomic_ops.c (all_sigs, initialized,
152 AO_compare_and_swap_emulation,
153 AO_compare_double_and_swap_double_emulation): Use
154 AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS.
156 2011-01-07 Ivan Maidanski <ivmai@mail.ru>
158 * src/.cvsignore: Add more auto-generated files.
159 * tests/.cvsignore: Ditto.
160 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store,
161 AO_compare_double_and_swap_double): Reformat code.
162 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
163 AO_compare_double_and_swap_double): Ditto.
164 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
165 Produce "it eq" instruction only for Thumb mode.
166 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
168 2010-11-23 Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
170 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
171 Insert "it eq" just before "strexeq" (required for Thumb-2 mode,
172 ignored in ARM mode).
173 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
175 2010-09-15 Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
177 * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__.
178 * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__.
179 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is
181 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS
182 is defined but emul_cas.h has not been included.
183 * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo.
185 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
187 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
188 automake-1.11.1 and libtool-2.2.8).
191 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
193 * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
196 2010-05-30 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
198 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use
199 "register long" (instead of "int") for "ret" variable.
200 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace
201 with AO_test_and_set_full (same for AO_HAVE_test_and_set).
202 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full):
203 New function implemented.
205 2010-05-22 Ivan Maidanski <ivmai@mail.ru>
207 * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
209 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
211 2010-05-21 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
213 * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
214 * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
216 2010-04-29 Ivan Maidanski <ivmai@mail.ru>
218 * doc/README_malloc.txt: Fix a typo.
219 * doc/README_stack.txt: Ditto.
221 2010-02-25 Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
223 * .cvsignore: New file.
224 * doc/.cvsignore: Ditto.
225 * src/.cvsignore: Ditto.
226 * src/atomic_ops/.cvsignore: Ditto.
227 * src/atomic_ops/sysdeps/.cvsignore: Ditto.
228 * tests/.cvsignore: Ditto.
230 2010-02-19 Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
232 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full):
233 Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN.
234 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
236 * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined
237 if GCC v4.2+ or Intel compiler v11.1+ (only for amd64).
238 * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel
239 compiler in GCC compatible mode (only for x86 and amd64).
241 2010-02-18 Ivan Maidanski <ivmai@mail.ru>
243 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check
244 for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on
245 all x86_64/amd64 chips); remove the comment.
246 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
247 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only
248 if AO_ASM_X64_AVAILABLE.
249 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
250 Use built-in __sync_bool_compare_and_swap() if GCC v4.2+.
252 2010-02-17 Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
254 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full,
255 AO_compare_double_and_swap_double_full): Use EAX for the result
256 since cmpxchg clobbers it.
257 * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full,
258 AO_compare_double_and_swap_double_full): Ditto.
259 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full,
260 AO_compare_double_and_swap_double_full): Ditto.
261 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full,
262 AO_compare_double_and_swap_double_full): Ditto.
264 2010-02-04 Ivan Maidanski <ivmai@mail.ru>
266 * doc/Makefile.in: Regenerate.
268 2010-02-04 Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
270 * doc/Makefile.am: Remove duplicate file in the list.
272 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
274 * ChangeLog: Fix some typos.
276 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
278 * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
279 Define "i" variable only if used (to suppress a compiler warning).
281 2010-02-02 Ivan Maidanski <ivmai@mail.ru>
283 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix
284 "xchg" data size (remove "l" suffix).
285 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
287 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
289 * src/atomic_ops/sysdeps/sunc/x86.h
290 (AO_compare_double_and_swap_double_full,
291 AO_HAVE_compare_double_and_swap_double_full): Comment out (since
292 not tested, might be wrong, and tickles a bug in some Sun CC
293 versions; besides, __PIC__ macro is never predefined by Sun CC).
295 2010-01-29 Ivan Maidanski <ivmai@mail.ru>
297 * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b,
298 automake-1.11.1, autoconf-2.65).
299 * Makefile.in: Ditto.
302 * config.guess: Ditto.
308 * mkinstalldirs: Ditto.
309 * doc/Makefile.in: Ditto.
310 * src/Makefile.in: Ditto.
311 * src/atomic_ops/Makefile.in: Ditto.
312 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
313 * src/config.h.in: Ditto.
314 * tests/Makefile.in: Ditto.
316 2009-12-19 Ivan Maidanski <ivmai@mail.ru>
318 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
319 AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
321 2009-12-17 Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
323 * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
325 2009-12-04 Ivan Maidanski <ivmai@mail.ru>
327 * configure.ac, README: Change to version 7.2alpha5.
328 * configure: Regenerate.
332 2009-12-02 Ivan Maidanski <ivmai@mail.ru>
334 * configure.ac, README: Change to version 7.2alpha4.
335 * configure: Regenerate.
337 2009-12-01 Ivan Maidanski <ivmai@mail.ru>
339 * configure.ac, README: Change to version 1.3alpha1.
340 * configure: Regenerate.
342 2009-11-21 Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
344 * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
346 * configure: Regenerate.
348 2009-10-06 Ivan Maidanski <ivmai@mail.ru>
350 * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
353 2009-10-05 Ivan Maidanski <ivmai@mail.ru>
355 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
357 2009-10-05 Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
359 * src/atomic_ops/sysdeps/gcc/sh.h: New file.
360 * src/atomic_ops.h: Include gcc/sh.h if __arm__.
361 * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
363 2009-10-02 Ivan Maidanski <ivmai@mail.ru>
365 * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
366 msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
367 entries; order all entries alphabetically.
368 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
370 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
372 * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
373 automake-1.10.2, autoconf-2.64).
375 * Makefile.in: Ditto.
377 * config.guess: Ditto.
383 * mkinstalldirs: Ditto.
384 * doc/Makefile.in: Ditto.
385 * src/config.h.in: Ditto.
386 * src/Makefile.in: Ditto.
387 * src/atomic_ops/Makefile.in: Ditto.
388 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
389 * tests/Makefile.in: Ditto.
391 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
393 * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
394 for the preprocessor directives.
395 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
397 2009-09-30 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
399 * README: Move notes from the hand-edited part of INSTALL which
400 was overwritten by Automake recently.
402 2009-09-26 Ivan Maidanski <ivmai@mail.ru>
404 * aclocal.m4: Regenerate (by autoreconf -vif).
405 * config.guess: Ditto.
409 * Makefile.in: Ditto.
410 * doc/Makefile.in: Ditto.
411 * src/config.h.in: Ditto.
412 * src/Makefile.in: Ditto.
413 * src/atomic_ops/Makefile.in: Ditto.
414 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
415 * tests/Makefile.in: Ditto.
417 2009-09-25 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
419 * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
421 2009-09-16 Ivan Maidanski <ivmai@mail.ru>
423 * ChangeLog: Remove trailing spaces at EOLn.
424 * doc/README.txt: Expand all tabs to spaces; remove trailing
425 spaces at EOLn; remove multiple trailing blank lines.
426 * src/atomic_ops.c: Ditto.
427 * src/atomic_ops.h: Ditto.
428 * src/atomic_ops/generalize-small.h: Ditto.
429 * src/atomic_ops/generalize.h: Ditto.
430 * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
431 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
432 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
433 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
434 * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
435 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
436 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
437 * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
438 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
439 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
440 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
441 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
442 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
443 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
444 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
445 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
446 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
447 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
448 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
449 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
450 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
451 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
452 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
453 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
454 * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
455 * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
456 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
457 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
458 * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
459 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
460 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
461 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
462 * src/atomic_ops/sysdeps/ordered.h: Ditto.
463 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
464 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
465 * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
466 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
467 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
468 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
469 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
470 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
471 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
472 * src/atomic_ops_stack.c: Ditto.
473 * src/atomic_ops_stack.h: Ditto.
474 * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
476 * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
478 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
481 * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
482 (regarding memory barrier).
483 * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
484 AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
485 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
486 AO_test_and_set): Replace FIXME with the comment saying it is
487 emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
488 * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
489 using InterlockedCompareExchange() (assuming the latter has a full
491 * src/atomic_ops/sysdeps/msftc/arm.h: Include
492 all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
493 of pre-ARMv6; add the comment.
495 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
498 * src/atomic_ops/sysdeps/armcc/arm_v6.h
499 (AO_compare_double_and_swap_double): Replace false/true with 0/1.
500 * src/atomic_ops/sysdeps/gcc/arm.h
501 (AO_compare_double_and_swap_double): Ditto.
502 * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
503 predefined macros (6J, 6ZK, 7A, 7M, 7R).
504 * src/atomic_ops/sysdeps/gcc/arm.h
505 (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
506 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
507 Correct the name (convert from the lower case).
508 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
510 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
511 AO_compare_and_swap): Comment out unimplemented code (and the
512 corresponding macros); add FIXME.
513 * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
514 _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
515 pthreads-w32 library); don't include signal.h, sys/time.h,
516 sys/select.h in this case; include windows.h instead.
517 * src/atomic_ops.c (AO_pause): Use Sleep() in case of
518 AO_USE_WIN32_PTHREADS (instead of select()).
519 * src/atomic_ops.c (all_sigs, initialized): Don't define in case
520 of AO_USE_WIN32_PTHREADS.
521 * src/atomic_ops.c (AO_compare_and_swap_emulation,
522 AO_compare_double_and_swap_double_emulation): Don't deal with
523 signals in case of AO_USE_WIN32_PTHREADS.
525 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
528 * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
530 * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
531 * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
533 * src/atomic_ops/sysdeps/msftc/common32_defs.h
534 (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
535 * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
536 declarations to common32_defs.h.
537 * src/atomic_ops/sysdeps/msftc/common32_defs.h
538 (AO_INTERLOCKED_VOLATILE): New macro defined (used by
539 Interlocked-based primitives) for compatibility with older VC++.
540 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
541 missing <intrin.h> if WinCE target.
542 * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
543 (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
544 * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
545 AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
546 AO_compare_and_swap_full): Move arch-independent primitives to
548 * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
549 better CPU (since Interlocked Add and Xchg primitives are available
551 * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
553 * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
555 * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
557 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
560 * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
561 ASSUME_WINDOWS98 with "AO_").
562 * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
564 * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
565 K&R-style function definition with ANSI C one.
566 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
567 Replace AO_TS_SET with its value 0xff (some compilers does not like
568 C enum consts inside inline assembler).
569 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
570 comment about "missing return value" warning.
571 * src/atomic_ops/sysdeps/msftc/x86.h
572 (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
573 * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
574 _InterlockedCompareExchange() with args and result of PVOID type
575 if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
576 DigitalMars compiler support).
577 * src/atomic_ops/sysdeps/msftc/x86.h
578 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
579 variables ("val1" is the lowest part of AO_double_t).
580 * src/atomic_ops/sysdeps/msftc/x86.h
581 (AO_compare_double_and_swap_double_full): Rename to
582 AO_double_compare_and_swap_full (as it has 3 args).
583 * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
586 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
589 * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
591 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
592 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
593 K&R-style function definition with ANSI C one.
594 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
595 * src/atomic_ops/sysdeps/gcc/x86_64.h
596 (AO_compare_double_and_swap_double_full): Fix comment.
597 * src/atomic_ops/sysdeps/gcc/x86_64.h
598 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
599 variables ("val1" is the lowest part of AO_double_t).
600 * src/atomic_ops/sysdeps/msftc/x86_64.h
601 (AO_compare_double_and_swap_double_full): Ditto.
602 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
604 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
606 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
607 "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
608 x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
609 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
610 "standard_ao_double_t.h" (same as in x86_64.h for gcc).
611 * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
612 <intrin.h> assuming at least VC++ v8.
613 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
614 prototypes (since they are always declared in intrin.h).
615 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
616 definition below CAS primitive (to textually group all asm-based
617 primitives together).
618 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
619 Implement for AO_ASM_X64_AVAILABLE case.
620 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
621 macro (replaced with AO_ASM_X64_AVAILABLE).
622 * src/atomic_ops/sysdeps/msftc/x86_64.h
623 (AO_compare_double_and_swap_double_full): Add intrinsic-based
624 implementation for VC++ v9+.
625 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
626 <xmmintrin.h> (and use "__m128" type) if _WIN64.
627 * src/atomic_ops/sysdeps/standard_ao_double_t.h
628 (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
629 "double_ptr_storage" is defined for all cases).
631 2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
633 * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
634 Renamed to AO_NO_SPARC_V9.
636 2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
638 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
639 AO_TS_VAL_t for "oldval" (for 64-bit support).
640 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
641 New function implemented.
643 2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
644 (diff107_cvs, resembling diff78 and diff88_cvs)
646 * src/atomic_ops/sysdeps/sunc/x86.h: New file.
647 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
648 * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
650 * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
651 implementation for VC++ v8+ (include <intrin.h> before it unless
652 WinCE target); use asm-based barrier implementation for Borland,
653 DigitalMars and Watcom.
654 * src/atomic_ops.h: Fix comment (for x86_64).
655 * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
656 headers for Sun C (if not AO_USE_PTHREAD_DEFS).
657 * src/atomic_ops.h: Include VC-specific arch headers for Borland,
658 DigitalMars and Watcom (Win32 target only).
660 2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
661 (diff87_cvs, resembling diff29, diff68, diff78 partly)
663 * doc/README.txt: Remove outdated info about Windows support.
664 * src/atomic_ops/generalize.h (AO_nop_full): Replace
665 K&R-style function definition with ANSI C one.
666 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
667 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
669 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
670 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
671 * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
672 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
673 * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
674 * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
675 * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
676 * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
677 * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
678 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
679 * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
680 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
683 2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
685 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
686 update modifiers to asms, refine clobbers to "cr0", use
687 cr0 instead of cr7, add explicit AO_fetch_and_add,
688 add UNTESTED 64 bit support.
690 2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
692 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
693 AO_compare_and_swap value differently, add
694 AO_compare_double_and_swap_double, some indentation fixes.
695 * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
696 robust and minimize clobbers, Add AO_compare_double_and_swap_double.
698 2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
700 * INSTALL: Add some platform-specific documentation.
701 * src/Makefile.msft: Fix copyright notice.
703 2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
705 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
706 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
707 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
708 * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
709 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
710 * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
711 * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
712 * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
713 * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
714 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
715 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
716 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
717 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
718 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
719 * src/atomic_ops.c: Fix comments.
720 * src/atomic_ops.h: Fix comments.
721 * src/atomic_ops_stack.c: Fix comments.
722 * src/atomic_ops_stack.h: Fix comments.
724 2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
726 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
729 2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
731 * config.guess, config.sub, configure: Regenerate/replace.
732 Use autoconf 2.61, automake 1.9.6.
734 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
736 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
739 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
741 * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
743 2008-07-24 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
745 * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
746 Add parentheses around addr arg for various functions.
748 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
750 * src/atomic_ops/sysdeps/gcc/powerpc.h:
751 Add const to first parameter of load calls (forgot one).
753 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
755 * doc/README.txt, src/atomic_ops/generalize.h,
756 src/atomic_ops/generalize-small.template,
757 src/atomic_ops/generalize-small.h,
758 src/atomic_ops/sysdeps/acquire_release_volatile.h,
759 src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
760 src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
761 src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
762 src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
763 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
764 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
765 src/atomic_ops/sysdeps/ao_t_is_int.h,
766 src/atomic_ops/sysdeps/atomic_load_store.h,
767 src/atomic_ops/sysdeps/char_atomic_load_store.h,
768 src/atomic_ops/sysdeps/int_atomic_load_store.h,
769 src/atomic_ops/sysdeps/short_atomic_load_store.h,
770 src/atomic_ops/sysdeps/generic_pthread.h,
771 src/atomic_ops/sysdeps/read_ordered.h,
772 src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
773 src/atomic_ops/sysdeps/gcc/arm.h,
774 src/atomic_ops/sysdeps/icc/ia64.h,
775 src/atomic_ops/sysdeps/ibmc/powerpc.h:
776 Add const to first parameter of load calls.
778 2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
780 * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
781 AO_or_full, and let it be autogenerated instead.
783 2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
785 * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
786 fixing a merge accident.
788 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
791 * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
794 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
797 * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
798 src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
799 * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
800 on char, align AO_t. Add cas, or.
801 * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
802 * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
803 * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
804 tests/Makefile.in: Regenerate.
806 2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
807 (Really Ian Wienand & Debian maintainers)
809 * src/atomic_ops/sysdeps/gcc/x86.h
810 (AO_compare_double_and_swap_double_full): Correctly account for
813 2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
815 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
816 double_ptr_storage default to long long; define everywhere.
818 2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
820 * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
821 compare_double_and_swap_double.
823 2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
825 * src/atomic_ops/generalize.h: Add test_and_set generalizations,
826 Add AO_double_compare_and_swap generalizations.
827 * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
828 * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
829 * src/atomic_ops/sysdeps/gcc/x86.h,
830 src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
831 compare_double_and_swap_double, commented out for msftc.
832 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add
833 double_ptr_storage field.
835 2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
836 (Merge from separate atomic_ops tree)
838 * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
839 double-width cas, and fix its implementation.
840 * doc/README.txt: Clarify use of _full. Add more warnings about
843 2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
845 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
846 %X1 modifier to support indexed addressing.
848 2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
850 * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
853 2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
855 * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
858 2007-06-26 Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
860 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
863 2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
865 * src/atomic_ops.h: include stddef.h
867 2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
869 * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
870 * src/atomic_ops.h: Add test for msftc/x86_64.h.
871 * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
872 * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
873 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
874 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
875 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
876 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
877 Replace unsigned long cast with size_t.
879 2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
881 * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
884 2007-05-14 Hans Boehm <Hans.Boehm@hp.com>
886 * doc/README.txt: Update to reflect C++0x effort.
888 2007-05-07 Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
890 * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
892 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
895 2006-11-09 Earl Chew (Agilent)
897 * msftc/x86.h: Follow Microsoft documentation and include
902 2006-07-11 Hans Boehm <Hans.Boehm@hp.com>
904 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
906 2006-03-28 Earl Chew (Agilent)
908 * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
909 * src/atomic_ops/sysdeps/msftc/x86.h:
910 Use new intrinsics available in MSVC 2003 and MSVC 2005.
911 Use inline assembler to generate mfence and byte sized xchg
912 Use correct prototype for InterlockedCompareExchange.
913 * src/atomic_ops.h: Add test for __PPC__ .
914 * tests/run_parallel.inc: Add simple VxWorks support.
915 * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
916 to silence compiler warnings.
918 2006-11-13 Hans Boehm <Hans.Boehm@hp.com>
920 * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
921 * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
923 2005-11-04 Hans Boehm <Hans.Boehm@hp.com>
925 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
926 all_acquire_release_volatile.h, instead of just the pointer-sized
928 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
929 all_acquire_release_volatile.h and all_atomic_load_store.h,
930 instead of just the pointer-sized versions.
934 2005-09-27 Hans Boehm <Hans.Boehm@hp.com>
936 * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
937 * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
939 * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
940 instead of duplicating it.
941 * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
943 2005-09-16 Hans Boehm <Hans.Boehm@hp.com>
945 * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
946 definition with one that might actually work. (Thanks to Kazu
947 Hirata and Paul Brook.)
949 2005-08-01 Hans Boehm <Hans.Boehm@hp.com>
951 * src/atomic_ops/Makefile.am: Change function naming from "byte" to
956 2005-03-21 Hans Boehm <Hans.Boehm@hp.com>
957 Fix various acquire_release_volatile.h files to reflect the fact
958 that both icc and gcc seem to reorder ordinary memory accesses around
959 volatile accesses early in the compilation. Modify the acquire
960 release test to catch this problem (with high probability, and only on
963 2005-03 Hans Boehm <Hans.Boehm@hp.com>
964 Fixes for recently introduced bugs. Update x86 and x86-64 assembly
965 syntax to deal with complaints by some recent gcc versions.
967 2005-02 Hans Boehm <Hans.Boehm@hp.com>
968 Added libatomic_ops_gpl library with support for mostly
969 lock-free stack and malloc().
971 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
972 Hans Boehm <Hans.Boehm@hp.com>
973 Use autoconf, automake, starting with code from Debian package.
976 2005-01 Hans Boehm <Hans.Boehm@hp.com>
977 * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
978 Change most platforms to use byte-wide test-and-set locations.
980 2005-01 Hans Boehm <Hans.Boehm@hp.com>
981 * ao_t_is_int.h: Add to trivially support int-wide operations
982 on platforms with int-sized pointers.
984 2004-12 Hans Boehm <Hans.Boehm@hp.com>
985 * gcc/powerpc.h: First serious attempt to support PowerPC (with
986 help from Maged Michael and others).
988 2004-12 Hans Boehm <Hans.Boehm@hp.com>
989 * sunc/sparc.[hS]: Added minimal support for the Sun SPARC compiler.
990 * atomic_ops_sysdeps.S: Add support for platforms that require
991 out-of-line assembly code.
993 2004-10 Hans Boehm <Hans.Boehm@hp.com>
994 More work on char, short, int sized data. Add both
995 compare_double_and_swap_double and compare_and_swap_double.
996 Typically each platform will provide at most one of these.
998 2004-07-02 Ranko Zivojnovic
999 Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
1001 2004-06 Hans Boehm <Hans.Boehm@hp.com>
1002 Start to add atomic_ops primitives for different sized data.
1004 2003-12-18 Hans Boehm <Hans.Boehm@hp.com>
1006 * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
1007 Fix support for ecc on IA64. Remove compiler_barrier workaround
1008 for gcc 3.4 and later.
1010 2003-12-17 Hans Boehm <Hans.Boehm@hp.com>
1012 * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
1013 atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
1014 Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
1015 for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
1016 compiler on PA_RISC and IA64.
1018 2003-12-09 Hans Boehm <Hans.Boehm@hp.com>
1020 * many: Install under "atomic_ops" instead of "ao".
1021 Change atomic_ops include file structure. Auxiliary include
1022 files are all under include/atomic_ops.
1023 Fix (hopefully) "make dist" in atomic_ops distribution.
1024 Renamed various types to end in _t, though the old versions
1025 are still defined for backward compatibility.
1027 2003-12-08 Carlos O'Donell <carlos@baldric.uwo.ca>
1029 * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
1030 AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
1031 helper macros. AO_test_and_set_full uses helper macros.
1034 Started sometime after version 0.4 release. Currently the format is
1035 informal. Eventually should become more GNU-like.