1 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
3 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Remove
4 blank line between AO_func and AO_HAVE_func definitions.
5 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
6 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
7 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
8 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
9 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
10 * src/atomic_ops/sysdeps/ordered.h: Ditto.
11 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
12 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
13 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
14 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
15 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
16 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
17 * src/atomic_ops/sysdeps/gcc/cris.h: Ditto.
18 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
19 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
20 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
21 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
22 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
23 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
24 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
25 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
26 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
27 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
28 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
29 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
30 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
31 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
32 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
33 * src/atomic_ops/sysdeps/sunc/sparc.h: Ditto.
34 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
35 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
36 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Reformat
38 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
39 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
40 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
41 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
42 * src/atomic_ops/sysdeps/ordered.h: Ditto.
43 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
44 * src/atomic_ops/sysdeps/test_and_set_t_is_char.h: Remove file
46 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Don't
48 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire,
49 AO_test_and_set, AO_compare_and_swap): Merge adjacent definitions.
50 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_store_release):
52 * src/atomic_ops/sysdeps/sunc/sparc.h: Expand all tabs to spaces;
53 remove trailing spaces at EOLn.
55 2011-06-02 Ivan Maidanski <ivmai@mail.ru>
57 * tests/test_malloc.c (main): Remove unused "exper_n" local
59 * tests/test_stack.c (run_one_test): Remove unused "aux" local
62 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
64 * src/atomic_ops/sysdeps/gcc/arm.h
65 (AO_compare_double_and_swap_double,
66 AO_HAVE_compare_double_and_swap_double): Define only starting from
68 * src/atomic_ops/sysdeps/gcc/arm.h
69 (AO_compare_double_and_swap_double): Fix function name in
70 assembler code; replace while (1) loop with "do-while".
72 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
74 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full):
75 Specify "%b0" (instead of "%0") in "xchg" instruction (to
76 workaround a bug in Sun C 5.11).
77 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
80 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
82 * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
83 Sun C compiler (call "release" variant of AO_store).
85 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
87 * configure.ac (_PTHREADS): New template (used for NetBSD).
88 * configure.ac (THREADDLLIBS): New macro.
89 * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD,
90 test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS
91 instead of "-lpthread".
92 * configure: Regenerate.
94 * doc/Makefile.in: Ditto.
95 * src/Makefile.in: Ditto.
96 * src/atomic_ops/Makefile.in: Ditto.
97 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
98 * src/config.h.in: Ditto.
99 * tests/Makefile.in: Ditto.
101 2011-05-30 Ivan Maidanski <ivmai@mail.ru>
103 * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not
104 define the corresponding macro.
105 * configure.ac: Don't check for GCC twice.
106 * configure: Regenerate.
107 * tests/test_malloc.c (DEFAULT_NTHREADS): New macro.
108 * tests/test_malloc.c (run_one_test): Refine printed message (in
110 * tests/test_malloc.c (main): Use DEFAULT_NTHREADS.
111 * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer.
112 * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS,
113 OPT_MAP_ANON): New macro.
114 * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as
115 file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON).
116 * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON,
117 GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open()
120 2011-05-11 Ivan Maidanski <ivmai@mail.ru>
122 * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
124 * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and
125 LARGE_OBJ_SIZE, respectively.
126 * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH,
127 LARGE_OBJ_SIZE): Do not define unless undefined.
128 * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST
131 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
133 * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
135 * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
137 * tests/Makefile.am: Remove trailing spaces at EOLn.
138 * tests/Makefile.in: Regenerate.
140 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
142 * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
144 * tests/test_stack.c: Expand all tabs to spaces.
145 * tests/test_atomic_include.h: Ditto.
146 * tests/test_stack.c (main): Free pop'ed elements.
147 * tests/test_atomic_include.h (test_atomic, test_atomic_release,
148 test_atomic_acquire, test_atomic_read, test_atomic_write,
149 test_atomic_full, test_atomic_release_write,
150 test_atomic_acquire_read): Remove prototype.
152 2011-04-22 Ivan Maidanski <ivmai@mail.ru>
154 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
155 asm; remove redundant trailing ';'.
157 2011-04-11 Ivan Maidanski <ivmai@mail.ru> (really Jim Meyering)
159 * doc/README.txt: Remove doubled words in comments.
161 2011-03-18 Ivan Maidanski <ivmai@mail.ru>
163 * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
164 ARM chips instead of all the currently existing v6+ ones.
166 2011-03-13 Ivan Maidanski <ivmai@mail.ru>
168 * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
169 expand all tabs to spaces.
170 * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
171 Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug).
172 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
175 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
177 * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl.
178 * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in
179 a conditional expression) to prevent a compiler warning.
180 * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove
181 trailing spaces at EOLn.
183 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
185 * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
186 AO_USE_NANOSLEEP for NaCl.
188 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
190 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
191 automake-1.11.1 and libtool-2.4).
194 2011-02-09 Ivan Maidanski <ivmai@mail.ru>
196 * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
198 * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
200 * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS.
201 * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP.
202 * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code.
203 * src/atomic_ops.c (AO_pause): Use nanosleep() if
205 * src/atomic_ops.c (all_sigs, initialized,
206 AO_compare_and_swap_emulation,
207 AO_compare_double_and_swap_double_emulation): Use
208 AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS.
210 2011-01-07 Ivan Maidanski <ivmai@mail.ru>
212 * src/.cvsignore: Add more auto-generated files.
213 * tests/.cvsignore: Ditto.
214 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store,
215 AO_compare_double_and_swap_double): Reformat code.
216 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
217 AO_compare_double_and_swap_double): Ditto.
218 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
219 Produce "it eq" instruction only for Thumb mode.
220 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
222 2010-11-23 Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
224 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
225 Insert "it eq" just before "strexeq" (required for Thumb-2 mode,
226 ignored in ARM mode).
227 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
229 2010-09-15 Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
231 * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__.
232 * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__.
233 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is
235 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS
236 is defined but emul_cas.h has not been included.
237 * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo.
239 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
241 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
242 automake-1.11.1 and libtool-2.2.8).
245 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
247 * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
250 2010-05-30 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
252 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use
253 "register long" (instead of "int") for "ret" variable.
254 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace
255 with AO_test_and_set_full (same for AO_HAVE_test_and_set).
256 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full):
257 New function implemented.
259 2010-05-22 Ivan Maidanski <ivmai@mail.ru>
261 * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
263 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
265 2010-05-21 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
267 * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
268 * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
270 2010-04-29 Ivan Maidanski <ivmai@mail.ru>
272 * doc/README_malloc.txt: Fix a typo.
273 * doc/README_stack.txt: Ditto.
275 2010-02-25 Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
277 * .cvsignore: New file.
278 * doc/.cvsignore: Ditto.
279 * src/.cvsignore: Ditto.
280 * src/atomic_ops/.cvsignore: Ditto.
281 * src/atomic_ops/sysdeps/.cvsignore: Ditto.
282 * tests/.cvsignore: Ditto.
284 2010-02-19 Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
286 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full):
287 Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN.
288 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
290 * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined
291 if GCC v4.2+ or Intel compiler v11.1+ (only for amd64).
292 * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel
293 compiler in GCC compatible mode (only for x86 and amd64).
295 2010-02-18 Ivan Maidanski <ivmai@mail.ru>
297 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check
298 for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on
299 all x86_64/amd64 chips); remove the comment.
300 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
301 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only
302 if AO_ASM_X64_AVAILABLE.
303 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
304 Use built-in __sync_bool_compare_and_swap() if GCC v4.2+.
306 2010-02-17 Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
308 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full,
309 AO_compare_double_and_swap_double_full): Use EAX for the result
310 since cmpxchg clobbers it.
311 * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full,
312 AO_compare_double_and_swap_double_full): Ditto.
313 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full,
314 AO_compare_double_and_swap_double_full): Ditto.
315 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full,
316 AO_compare_double_and_swap_double_full): Ditto.
318 2010-02-04 Ivan Maidanski <ivmai@mail.ru>
320 * doc/Makefile.in: Regenerate.
322 2010-02-04 Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
324 * doc/Makefile.am: Remove duplicate file in the list.
326 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
328 * ChangeLog: Fix some typos.
330 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
332 * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
333 Define "i" variable only if used (to suppress a compiler warning).
335 2010-02-02 Ivan Maidanski <ivmai@mail.ru>
337 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix
338 "xchg" data size (remove "l" suffix).
339 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
341 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
343 * src/atomic_ops/sysdeps/sunc/x86.h
344 (AO_compare_double_and_swap_double_full,
345 AO_HAVE_compare_double_and_swap_double_full): Comment out (since
346 not tested, might be wrong, and tickles a bug in some Sun CC
347 versions; besides, __PIC__ macro is never predefined by Sun CC).
349 2010-01-29 Ivan Maidanski <ivmai@mail.ru>
351 * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b,
352 automake-1.11.1, autoconf-2.65).
353 * Makefile.in: Ditto.
356 * config.guess: Ditto.
362 * mkinstalldirs: Ditto.
363 * doc/Makefile.in: Ditto.
364 * src/Makefile.in: Ditto.
365 * src/atomic_ops/Makefile.in: Ditto.
366 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
367 * src/config.h.in: Ditto.
368 * tests/Makefile.in: Ditto.
370 2009-12-19 Ivan Maidanski <ivmai@mail.ru>
372 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
373 AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
375 2009-12-17 Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
377 * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
379 2009-12-04 Ivan Maidanski <ivmai@mail.ru>
381 * configure.ac, README: Change to version 7.2alpha5.
382 * configure: Regenerate.
386 2009-12-02 Ivan Maidanski <ivmai@mail.ru>
388 * configure.ac, README: Change to version 7.2alpha4.
389 * configure: Regenerate.
391 2009-12-01 Ivan Maidanski <ivmai@mail.ru>
393 * configure.ac, README: Change to version 1.3alpha1.
394 * configure: Regenerate.
396 2009-11-21 Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
398 * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
400 * configure: Regenerate.
402 2009-10-06 Ivan Maidanski <ivmai@mail.ru>
404 * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
407 2009-10-05 Ivan Maidanski <ivmai@mail.ru>
409 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
411 2009-10-05 Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
413 * src/atomic_ops/sysdeps/gcc/sh.h: New file.
414 * src/atomic_ops.h: Include gcc/sh.h if __arm__.
415 * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
417 2009-10-02 Ivan Maidanski <ivmai@mail.ru>
419 * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
420 msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
421 entries; order all entries alphabetically.
422 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
424 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
426 * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
427 automake-1.10.2, autoconf-2.64).
429 * Makefile.in: Ditto.
431 * config.guess: Ditto.
437 * mkinstalldirs: Ditto.
438 * doc/Makefile.in: Ditto.
439 * src/config.h.in: Ditto.
440 * src/Makefile.in: Ditto.
441 * src/atomic_ops/Makefile.in: Ditto.
442 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
443 * tests/Makefile.in: Ditto.
445 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
447 * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
448 for the preprocessor directives.
449 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
451 2009-09-30 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
453 * README: Move notes from the hand-edited part of INSTALL which
454 was overwritten by Automake recently.
456 2009-09-26 Ivan Maidanski <ivmai@mail.ru>
458 * aclocal.m4: Regenerate (by autoreconf -vif).
459 * config.guess: Ditto.
463 * Makefile.in: Ditto.
464 * doc/Makefile.in: Ditto.
465 * src/config.h.in: Ditto.
466 * src/Makefile.in: Ditto.
467 * src/atomic_ops/Makefile.in: Ditto.
468 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
469 * tests/Makefile.in: Ditto.
471 2009-09-25 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
473 * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
475 2009-09-16 Ivan Maidanski <ivmai@mail.ru>
477 * ChangeLog: Remove trailing spaces at EOLn.
478 * doc/README.txt: Expand all tabs to spaces; remove trailing
479 spaces at EOLn; remove multiple trailing blank lines.
480 * src/atomic_ops.c: Ditto.
481 * src/atomic_ops.h: Ditto.
482 * src/atomic_ops/generalize-small.h: Ditto.
483 * src/atomic_ops/generalize.h: Ditto.
484 * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
485 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
486 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
487 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
488 * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
489 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
490 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
491 * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
492 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
493 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
494 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
495 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
496 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
497 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
498 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
499 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
500 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
501 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
502 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
503 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
504 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
505 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
506 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
507 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
508 * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
509 * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
510 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
511 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
512 * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
513 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
514 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
515 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
516 * src/atomic_ops/sysdeps/ordered.h: Ditto.
517 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
518 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
519 * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
520 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
521 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
522 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
523 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
524 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
525 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
526 * src/atomic_ops_stack.c: Ditto.
527 * src/atomic_ops_stack.h: Ditto.
528 * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
530 * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
532 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
535 * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
536 (regarding memory barrier).
537 * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
538 AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
539 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
540 AO_test_and_set): Replace FIXME with the comment saying it is
541 emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
542 * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
543 using InterlockedCompareExchange() (assuming the latter has a full
545 * src/atomic_ops/sysdeps/msftc/arm.h: Include
546 all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
547 of pre-ARMv6; add the comment.
549 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
552 * src/atomic_ops/sysdeps/armcc/arm_v6.h
553 (AO_compare_double_and_swap_double): Replace false/true with 0/1.
554 * src/atomic_ops/sysdeps/gcc/arm.h
555 (AO_compare_double_and_swap_double): Ditto.
556 * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
557 predefined macros (6J, 6ZK, 7A, 7M, 7R).
558 * src/atomic_ops/sysdeps/gcc/arm.h
559 (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
560 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
561 Correct the name (convert from the lower case).
562 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
564 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
565 AO_compare_and_swap): Comment out unimplemented code (and the
566 corresponding macros); add FIXME.
567 * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
568 _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
569 pthreads-w32 library); don't include signal.h, sys/time.h,
570 sys/select.h in this case; include windows.h instead.
571 * src/atomic_ops.c (AO_pause): Use Sleep() in case of
572 AO_USE_WIN32_PTHREADS (instead of select()).
573 * src/atomic_ops.c (all_sigs, initialized): Don't define in case
574 of AO_USE_WIN32_PTHREADS.
575 * src/atomic_ops.c (AO_compare_and_swap_emulation,
576 AO_compare_double_and_swap_double_emulation): Don't deal with
577 signals in case of AO_USE_WIN32_PTHREADS.
579 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
582 * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
584 * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
585 * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
587 * src/atomic_ops/sysdeps/msftc/common32_defs.h
588 (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
589 * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
590 declarations to common32_defs.h.
591 * src/atomic_ops/sysdeps/msftc/common32_defs.h
592 (AO_INTERLOCKED_VOLATILE): New macro defined (used by
593 Interlocked-based primitives) for compatibility with older VC++.
594 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
595 missing <intrin.h> if WinCE target.
596 * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
597 (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
598 * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
599 AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
600 AO_compare_and_swap_full): Move arch-independent primitives to
602 * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
603 better CPU (since Interlocked Add and Xchg primitives are available
605 * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
607 * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
609 * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
611 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
614 * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
615 ASSUME_WINDOWS98 with "AO_").
616 * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
618 * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
619 K&R-style function definition with ANSI C one.
620 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
621 Replace AO_TS_SET with its value 0xff (some compilers does not like
622 C enum consts inside inline assembler).
623 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
624 comment about "missing return value" warning.
625 * src/atomic_ops/sysdeps/msftc/x86.h
626 (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
627 * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
628 _InterlockedCompareExchange() with args and result of PVOID type
629 if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
630 DigitalMars compiler support).
631 * src/atomic_ops/sysdeps/msftc/x86.h
632 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
633 variables ("val1" is the lowest part of AO_double_t).
634 * src/atomic_ops/sysdeps/msftc/x86.h
635 (AO_compare_double_and_swap_double_full): Rename to
636 AO_double_compare_and_swap_full (as it has 3 args).
637 * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
640 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
643 * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
645 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
646 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
647 K&R-style function definition with ANSI C one.
648 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
649 * src/atomic_ops/sysdeps/gcc/x86_64.h
650 (AO_compare_double_and_swap_double_full): Fix comment.
651 * src/atomic_ops/sysdeps/gcc/x86_64.h
652 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
653 variables ("val1" is the lowest part of AO_double_t).
654 * src/atomic_ops/sysdeps/msftc/x86_64.h
655 (AO_compare_double_and_swap_double_full): Ditto.
656 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
658 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
660 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
661 "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
662 x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
663 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
664 "standard_ao_double_t.h" (same as in x86_64.h for gcc).
665 * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
666 <intrin.h> assuming at least VC++ v8.
667 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
668 prototypes (since they are always declared in intrin.h).
669 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
670 definition below CAS primitive (to textually group all asm-based
671 primitives together).
672 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
673 Implement for AO_ASM_X64_AVAILABLE case.
674 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
675 macro (replaced with AO_ASM_X64_AVAILABLE).
676 * src/atomic_ops/sysdeps/msftc/x86_64.h
677 (AO_compare_double_and_swap_double_full): Add intrinsic-based
678 implementation for VC++ v9+.
679 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
680 <xmmintrin.h> (and use "__m128" type) if _WIN64.
681 * src/atomic_ops/sysdeps/standard_ao_double_t.h
682 (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
683 "double_ptr_storage" is defined for all cases).
685 2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
687 * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
688 Renamed to AO_NO_SPARC_V9.
690 2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
692 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
693 AO_TS_VAL_t for "oldval" (for 64-bit support).
694 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
695 New function implemented.
697 2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
698 (diff107_cvs, resembling diff78 and diff88_cvs)
700 * src/atomic_ops/sysdeps/sunc/x86.h: New file.
701 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
702 * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
704 * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
705 implementation for VC++ v8+ (include <intrin.h> before it unless
706 WinCE target); use asm-based barrier implementation for Borland,
707 DigitalMars and Watcom.
708 * src/atomic_ops.h: Fix comment (for x86_64).
709 * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
710 headers for Sun C (if not AO_USE_PTHREAD_DEFS).
711 * src/atomic_ops.h: Include VC-specific arch headers for Borland,
712 DigitalMars and Watcom (Win32 target only).
714 2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
715 (diff87_cvs, resembling diff29, diff68, diff78 partly)
717 * doc/README.txt: Remove outdated info about Windows support.
718 * src/atomic_ops/generalize.h (AO_nop_full): Replace
719 K&R-style function definition with ANSI C one.
720 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
721 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
723 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
724 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
725 * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
726 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
727 * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
728 * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
729 * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
730 * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
731 * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
732 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
733 * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
734 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
737 2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
739 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
740 update modifiers to asms, refine clobbers to "cr0", use
741 cr0 instead of cr7, add explicit AO_fetch_and_add,
742 add UNTESTED 64 bit support.
744 2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
746 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
747 AO_compare_and_swap value differently, add
748 AO_compare_double_and_swap_double, some indentation fixes.
749 * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
750 robust and minimize clobbers, Add AO_compare_double_and_swap_double.
752 2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
754 * INSTALL: Add some platform-specific documentation.
755 * src/Makefile.msft: Fix copyright notice.
757 2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
759 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
760 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
761 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
762 * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
763 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
764 * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
765 * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
766 * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
767 * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
768 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
769 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
770 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
771 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
772 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
773 * src/atomic_ops.c: Fix comments.
774 * src/atomic_ops.h: Fix comments.
775 * src/atomic_ops_stack.c: Fix comments.
776 * src/atomic_ops_stack.h: Fix comments.
778 2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
780 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
783 2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
785 * config.guess, config.sub, configure: Regenerate/replace.
786 Use autoconf 2.61, automake 1.9.6.
788 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
790 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
793 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
795 * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
797 2008-07-24 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
799 * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
800 Add parentheses around addr arg for various functions.
802 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
804 * src/atomic_ops/sysdeps/gcc/powerpc.h:
805 Add const to first parameter of load calls (forgot one).
807 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
809 * doc/README.txt, src/atomic_ops/generalize.h,
810 src/atomic_ops/generalize-small.template,
811 src/atomic_ops/generalize-small.h,
812 src/atomic_ops/sysdeps/acquire_release_volatile.h,
813 src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
814 src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
815 src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
816 src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
817 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
818 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
819 src/atomic_ops/sysdeps/ao_t_is_int.h,
820 src/atomic_ops/sysdeps/atomic_load_store.h,
821 src/atomic_ops/sysdeps/char_atomic_load_store.h,
822 src/atomic_ops/sysdeps/int_atomic_load_store.h,
823 src/atomic_ops/sysdeps/short_atomic_load_store.h,
824 src/atomic_ops/sysdeps/generic_pthread.h,
825 src/atomic_ops/sysdeps/read_ordered.h,
826 src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
827 src/atomic_ops/sysdeps/gcc/arm.h,
828 src/atomic_ops/sysdeps/icc/ia64.h,
829 src/atomic_ops/sysdeps/ibmc/powerpc.h:
830 Add const to first parameter of load calls.
832 2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
834 * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
835 AO_or_full, and let it be autogenerated instead.
837 2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
839 * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
840 fixing a merge accident.
842 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
845 * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
848 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
851 * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
852 src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
853 * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
854 on char, align AO_t. Add cas, or.
855 * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
856 * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
857 * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
858 tests/Makefile.in: Regenerate.
860 2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
861 (Really Ian Wienand & Debian maintainers)
863 * src/atomic_ops/sysdeps/gcc/x86.h
864 (AO_compare_double_and_swap_double_full): Correctly account for
867 2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
869 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
870 double_ptr_storage default to long long; define everywhere.
872 2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
874 * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
875 compare_double_and_swap_double.
877 2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
879 * src/atomic_ops/generalize.h: Add test_and_set generalizations,
880 Add AO_double_compare_and_swap generalizations.
881 * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
882 * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
883 * src/atomic_ops/sysdeps/gcc/x86.h,
884 src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
885 compare_double_and_swap_double, commented out for msftc.
886 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add
887 double_ptr_storage field.
889 2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
890 (Merge from separate atomic_ops tree)
892 * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
893 double-width cas, and fix its implementation.
894 * doc/README.txt: Clarify use of _full. Add more warnings about
897 2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
899 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
900 %X1 modifier to support indexed addressing.
902 2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
904 * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
907 2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
909 * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
912 2007-06-26 Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
914 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
917 2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
919 * src/atomic_ops.h: include stddef.h
921 2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
923 * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
924 * src/atomic_ops.h: Add test for msftc/x86_64.h.
925 * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
926 * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
927 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
928 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
929 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
930 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
931 Replace unsigned long cast with size_t.
933 2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
935 * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
938 2007-05-14 Hans Boehm <Hans.Boehm@hp.com>
940 * doc/README.txt: Update to reflect C++0x effort.
942 2007-05-07 Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
944 * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
946 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
949 2006-11-09 Earl Chew (Agilent)
951 * msftc/x86.h: Follow Microsoft documentation and include
956 2006-07-11 Hans Boehm <Hans.Boehm@hp.com>
958 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
960 2006-03-28 Earl Chew (Agilent)
962 * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
963 * src/atomic_ops/sysdeps/msftc/x86.h:
964 Use new intrinsics available in MSVC 2003 and MSVC 2005.
965 Use inline assembler to generate mfence and byte sized xchg
966 Use correct prototype for InterlockedCompareExchange.
967 * src/atomic_ops.h: Add test for __PPC__ .
968 * tests/run_parallel.inc: Add simple VxWorks support.
969 * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
970 to silence compiler warnings.
972 2006-11-13 Hans Boehm <Hans.Boehm@hp.com>
974 * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
975 * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
977 2005-11-04 Hans Boehm <Hans.Boehm@hp.com>
979 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
980 all_acquire_release_volatile.h, instead of just the pointer-sized
982 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
983 all_acquire_release_volatile.h and all_atomic_load_store.h,
984 instead of just the pointer-sized versions.
988 2005-09-27 Hans Boehm <Hans.Boehm@hp.com>
990 * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
991 * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
993 * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
994 instead of duplicating it.
995 * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
997 2005-09-16 Hans Boehm <Hans.Boehm@hp.com>
999 * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
1000 definition with one that might actually work. (Thanks to Kazu
1001 Hirata and Paul Brook.)
1003 2005-08-01 Hans Boehm <Hans.Boehm@hp.com>
1005 * src/atomic_ops/Makefile.am: Change function naming from "byte" to
1010 2005-03-21 Hans Boehm <Hans.Boehm@hp.com>
1011 Fix various acquire_release_volatile.h files to reflect the fact
1012 that both icc and gcc seem to reorder ordinary memory accesses around
1013 volatile accesses early in the compilation. Modify the acquire
1014 release test to catch this problem (with high probability, and only on
1017 2005-03 Hans Boehm <Hans.Boehm@hp.com>
1018 Fixes for recently introduced bugs. Update x86 and x86-64 assembly
1019 syntax to deal with complaints by some recent gcc versions.
1021 2005-02 Hans Boehm <Hans.Boehm@hp.com>
1022 Added libatomic_ops_gpl library with support for mostly
1023 lock-free stack and malloc().
1025 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
1026 Hans Boehm <Hans.Boehm@hp.com>
1027 Use autoconf, automake, starting with code from Debian package.
1030 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1031 * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
1032 Change most platforms to use byte-wide test-and-set locations.
1034 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1035 * ao_t_is_int.h: Add to trivially support int-wide operations
1036 on platforms with int-sized pointers.
1038 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1039 * gcc/powerpc.h: First serious attempt to support PowerPC (with
1040 help from Maged Michael and others).
1042 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1043 * sunc/sparc.[hS]: Added minimal support for the Sun SPARC compiler.
1044 * atomic_ops_sysdeps.S: Add support for platforms that require
1045 out-of-line assembly code.
1047 2004-10 Hans Boehm <Hans.Boehm@hp.com>
1048 More work on char, short, int sized data. Add both
1049 compare_double_and_swap_double and compare_and_swap_double.
1050 Typically each platform will provide at most one of these.
1052 2004-07-02 Ranko Zivojnovic
1053 Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
1055 2004-06 Hans Boehm <Hans.Boehm@hp.com>
1056 Start to add atomic_ops primitives for different sized data.
1058 2003-12-18 Hans Boehm <Hans.Boehm@hp.com>
1060 * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
1061 Fix support for ecc on IA64. Remove compiler_barrier workaround
1062 for gcc 3.4 and later.
1064 2003-12-17 Hans Boehm <Hans.Boehm@hp.com>
1066 * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
1067 atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
1068 Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
1069 for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
1070 compiler on PA_RISC and IA64.
1072 2003-12-09 Hans Boehm <Hans.Boehm@hp.com>
1074 * many: Install under "atomic_ops" instead of "ao".
1075 Change atomic_ops include file structure. Auxiliary include
1076 files are all under include/atomic_ops.
1077 Fix (hopefully) "make dist" in atomic_ops distribution.
1078 Renamed various types to end in _t, though the old versions
1079 are still defined for backward compatibility.
1081 2003-12-08 Carlos O'Donell <carlos@baldric.uwo.ca>
1083 * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
1084 AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
1085 helper macros. AO_test_and_set_full uses helper macros.
1088 Started sometime after version 0.4 release. Currently the format is
1089 informal. Eventually should become more GNU-like.