1 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
3 * tests/test_malloc.c (run_one_test): Test AO_malloc() result
4 (if out of memory then print the message and abort).
5 * tests/test_stack.c (add_elements): Ditto.
7 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
9 * src/atomic_ops/generalize.h (AO_HAVE_or_full): Add missing
11 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_HAVE_nop_write):
13 * src/atomic_ops/sysdeps/read_ordered.h (AO_HAVE_nop_read): Ditto.
14 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_store_release):
17 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
19 * src/atomic_ops/generalize-small.template
20 (AO_HAVE_XSIZE_fetch_and_add_full): Add missing definition.
21 * src/atomic_ops/generalize-small.template: Reformat code.
22 * src/atomic_ops/generalize-small.h: Regenerate.
24 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
26 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Remove
27 blank line between AO_func and AO_HAVE_func definitions.
28 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
29 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
30 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
31 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
32 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
33 * src/atomic_ops/sysdeps/ordered.h: Ditto.
34 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
35 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
36 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
37 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
38 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
39 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
40 * src/atomic_ops/sysdeps/gcc/cris.h: Ditto.
41 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
42 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
43 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
44 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
45 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
46 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
47 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
48 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
49 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
50 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
51 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
52 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
53 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
54 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
55 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
56 * src/atomic_ops/sysdeps/sunc/sparc.h: Ditto.
57 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
58 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
59 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Reformat
61 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
62 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
63 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
64 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
65 * src/atomic_ops/sysdeps/ordered.h: Ditto.
66 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
67 * src/atomic_ops/sysdeps/test_and_set_t_is_char.h: Remove file
69 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Don't
71 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire,
72 AO_test_and_set, AO_compare_and_swap): Merge adjacent definitions.
73 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_store_release):
75 * src/atomic_ops/sysdeps/sunc/sparc.h: Expand all tabs to spaces;
76 remove trailing spaces at EOLn.
78 2011-06-02 Ivan Maidanski <ivmai@mail.ru>
80 * tests/test_malloc.c (main): Remove unused "exper_n" local
82 * tests/test_stack.c (run_one_test): Remove unused "aux" local
85 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
87 * src/atomic_ops/sysdeps/gcc/arm.h
88 (AO_compare_double_and_swap_double,
89 AO_HAVE_compare_double_and_swap_double): Define only starting from
91 * src/atomic_ops/sysdeps/gcc/arm.h
92 (AO_compare_double_and_swap_double): Fix function name in
93 assembler code; replace while (1) loop with "do-while".
95 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
97 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full):
98 Specify "%b0" (instead of "%0") in "xchg" instruction (to
99 workaround a bug in Sun C 5.11).
100 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
103 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
105 * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
106 Sun C compiler (call "release" variant of AO_store).
108 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
110 * configure.ac (_PTHREADS): New template (used for NetBSD).
111 * configure.ac (THREADDLLIBS): New macro.
112 * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD,
113 test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS
114 instead of "-lpthread".
115 * configure: Regenerate.
116 * Makefile.in: Ditto.
117 * doc/Makefile.in: Ditto.
118 * src/Makefile.in: Ditto.
119 * src/atomic_ops/Makefile.in: Ditto.
120 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
121 * src/config.h.in: Ditto.
122 * tests/Makefile.in: Ditto.
124 2011-05-30 Ivan Maidanski <ivmai@mail.ru>
126 * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not
127 define the corresponding macro.
128 * configure.ac: Don't check for GCC twice.
129 * configure: Regenerate.
130 * tests/test_malloc.c (DEFAULT_NTHREADS): New macro.
131 * tests/test_malloc.c (run_one_test): Refine printed message (in
133 * tests/test_malloc.c (main): Use DEFAULT_NTHREADS.
134 * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer.
135 * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS,
136 OPT_MAP_ANON): New macro.
137 * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as
138 file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON).
139 * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON,
140 GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open()
143 2011-05-11 Ivan Maidanski <ivmai@mail.ru>
145 * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
147 * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and
148 LARGE_OBJ_SIZE, respectively.
149 * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH,
150 LARGE_OBJ_SIZE): Do not define unless undefined.
151 * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST
154 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
156 * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
158 * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
160 * tests/Makefile.am: Remove trailing spaces at EOLn.
161 * tests/Makefile.in: Regenerate.
163 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
165 * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
167 * tests/test_stack.c: Expand all tabs to spaces.
168 * tests/test_atomic_include.h: Ditto.
169 * tests/test_stack.c (main): Free pop'ed elements.
170 * tests/test_atomic_include.h (test_atomic, test_atomic_release,
171 test_atomic_acquire, test_atomic_read, test_atomic_write,
172 test_atomic_full, test_atomic_release_write,
173 test_atomic_acquire_read): Remove prototype.
175 2011-04-22 Ivan Maidanski <ivmai@mail.ru>
177 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
178 asm; remove redundant trailing ';'.
180 2011-04-11 Ivan Maidanski <ivmai@mail.ru> (really Jim Meyering)
182 * doc/README.txt: Remove doubled words in comments.
184 2011-03-18 Ivan Maidanski <ivmai@mail.ru>
186 * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
187 ARM chips instead of all the currently existing v6+ ones.
189 2011-03-13 Ivan Maidanski <ivmai@mail.ru>
191 * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
192 expand all tabs to spaces.
193 * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
194 Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug).
195 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
198 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
200 * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl.
201 * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in
202 a conditional expression) to prevent a compiler warning.
203 * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove
204 trailing spaces at EOLn.
206 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
208 * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
209 AO_USE_NANOSLEEP for NaCl.
211 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
213 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
214 automake-1.11.1 and libtool-2.4).
217 2011-02-09 Ivan Maidanski <ivmai@mail.ru>
219 * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
221 * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
223 * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS.
224 * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP.
225 * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code.
226 * src/atomic_ops.c (AO_pause): Use nanosleep() if
228 * src/atomic_ops.c (all_sigs, initialized,
229 AO_compare_and_swap_emulation,
230 AO_compare_double_and_swap_double_emulation): Use
231 AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS.
233 2011-01-07 Ivan Maidanski <ivmai@mail.ru>
235 * src/.cvsignore: Add more auto-generated files.
236 * tests/.cvsignore: Ditto.
237 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store,
238 AO_compare_double_and_swap_double): Reformat code.
239 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
240 AO_compare_double_and_swap_double): Ditto.
241 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
242 Produce "it eq" instruction only for Thumb mode.
243 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
245 2010-11-23 Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
247 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
248 Insert "it eq" just before "strexeq" (required for Thumb-2 mode,
249 ignored in ARM mode).
250 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
252 2010-09-15 Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
254 * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__.
255 * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__.
256 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is
258 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS
259 is defined but emul_cas.h has not been included.
260 * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo.
262 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
264 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
265 automake-1.11.1 and libtool-2.2.8).
268 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
270 * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
273 2010-05-30 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
275 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use
276 "register long" (instead of "int") for "ret" variable.
277 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace
278 with AO_test_and_set_full (same for AO_HAVE_test_and_set).
279 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full):
280 New function implemented.
282 2010-05-22 Ivan Maidanski <ivmai@mail.ru>
284 * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
286 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
288 2010-05-21 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
290 * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
291 * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
293 2010-04-29 Ivan Maidanski <ivmai@mail.ru>
295 * doc/README_malloc.txt: Fix a typo.
296 * doc/README_stack.txt: Ditto.
298 2010-02-25 Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
300 * .cvsignore: New file.
301 * doc/.cvsignore: Ditto.
302 * src/.cvsignore: Ditto.
303 * src/atomic_ops/.cvsignore: Ditto.
304 * src/atomic_ops/sysdeps/.cvsignore: Ditto.
305 * tests/.cvsignore: Ditto.
307 2010-02-19 Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
309 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full):
310 Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN.
311 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
313 * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined
314 if GCC v4.2+ or Intel compiler v11.1+ (only for amd64).
315 * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel
316 compiler in GCC compatible mode (only for x86 and amd64).
318 2010-02-18 Ivan Maidanski <ivmai@mail.ru>
320 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check
321 for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on
322 all x86_64/amd64 chips); remove the comment.
323 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
324 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only
325 if AO_ASM_X64_AVAILABLE.
326 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
327 Use built-in __sync_bool_compare_and_swap() if GCC v4.2+.
329 2010-02-17 Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
331 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full,
332 AO_compare_double_and_swap_double_full): Use EAX for the result
333 since cmpxchg clobbers it.
334 * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full,
335 AO_compare_double_and_swap_double_full): Ditto.
336 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full,
337 AO_compare_double_and_swap_double_full): Ditto.
338 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full,
339 AO_compare_double_and_swap_double_full): Ditto.
341 2010-02-04 Ivan Maidanski <ivmai@mail.ru>
343 * doc/Makefile.in: Regenerate.
345 2010-02-04 Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
347 * doc/Makefile.am: Remove duplicate file in the list.
349 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
351 * ChangeLog: Fix some typos.
353 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
355 * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
356 Define "i" variable only if used (to suppress a compiler warning).
358 2010-02-02 Ivan Maidanski <ivmai@mail.ru>
360 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix
361 "xchg" data size (remove "l" suffix).
362 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
364 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
366 * src/atomic_ops/sysdeps/sunc/x86.h
367 (AO_compare_double_and_swap_double_full,
368 AO_HAVE_compare_double_and_swap_double_full): Comment out (since
369 not tested, might be wrong, and tickles a bug in some Sun CC
370 versions; besides, __PIC__ macro is never predefined by Sun CC).
372 2010-01-29 Ivan Maidanski <ivmai@mail.ru>
374 * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b,
375 automake-1.11.1, autoconf-2.65).
376 * Makefile.in: Ditto.
379 * config.guess: Ditto.
385 * mkinstalldirs: Ditto.
386 * doc/Makefile.in: Ditto.
387 * src/Makefile.in: Ditto.
388 * src/atomic_ops/Makefile.in: Ditto.
389 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
390 * src/config.h.in: Ditto.
391 * tests/Makefile.in: Ditto.
393 2009-12-19 Ivan Maidanski <ivmai@mail.ru>
395 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
396 AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
398 2009-12-17 Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
400 * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
402 2009-12-04 Ivan Maidanski <ivmai@mail.ru>
404 * configure.ac, README: Change to version 7.2alpha5.
405 * configure: Regenerate.
409 2009-12-02 Ivan Maidanski <ivmai@mail.ru>
411 * configure.ac, README: Change to version 7.2alpha4.
412 * configure: Regenerate.
414 2009-12-01 Ivan Maidanski <ivmai@mail.ru>
416 * configure.ac, README: Change to version 1.3alpha1.
417 * configure: Regenerate.
419 2009-11-21 Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
421 * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
423 * configure: Regenerate.
425 2009-10-06 Ivan Maidanski <ivmai@mail.ru>
427 * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
430 2009-10-05 Ivan Maidanski <ivmai@mail.ru>
432 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
434 2009-10-05 Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
436 * src/atomic_ops/sysdeps/gcc/sh.h: New file.
437 * src/atomic_ops.h: Include gcc/sh.h if __arm__.
438 * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
440 2009-10-02 Ivan Maidanski <ivmai@mail.ru>
442 * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
443 msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
444 entries; order all entries alphabetically.
445 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
447 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
449 * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
450 automake-1.10.2, autoconf-2.64).
452 * Makefile.in: Ditto.
454 * config.guess: Ditto.
460 * mkinstalldirs: Ditto.
461 * doc/Makefile.in: Ditto.
462 * src/config.h.in: Ditto.
463 * src/Makefile.in: Ditto.
464 * src/atomic_ops/Makefile.in: Ditto.
465 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
466 * tests/Makefile.in: Ditto.
468 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
470 * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
471 for the preprocessor directives.
472 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
474 2009-09-30 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
476 * README: Move notes from the hand-edited part of INSTALL which
477 was overwritten by Automake recently.
479 2009-09-26 Ivan Maidanski <ivmai@mail.ru>
481 * aclocal.m4: Regenerate (by autoreconf -vif).
482 * config.guess: Ditto.
486 * Makefile.in: Ditto.
487 * doc/Makefile.in: Ditto.
488 * src/config.h.in: Ditto.
489 * src/Makefile.in: Ditto.
490 * src/atomic_ops/Makefile.in: Ditto.
491 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
492 * tests/Makefile.in: Ditto.
494 2009-09-25 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
496 * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
498 2009-09-16 Ivan Maidanski <ivmai@mail.ru>
500 * ChangeLog: Remove trailing spaces at EOLn.
501 * doc/README.txt: Expand all tabs to spaces; remove trailing
502 spaces at EOLn; remove multiple trailing blank lines.
503 * src/atomic_ops.c: Ditto.
504 * src/atomic_ops.h: Ditto.
505 * src/atomic_ops/generalize-small.h: Ditto.
506 * src/atomic_ops/generalize.h: Ditto.
507 * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
508 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
509 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
510 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
511 * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
512 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
513 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
514 * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
515 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
516 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
517 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
518 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
519 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
520 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
521 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
522 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
523 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
524 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
525 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
526 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
527 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
528 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
529 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
530 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
531 * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
532 * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
533 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
534 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
535 * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
536 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
537 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
538 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
539 * src/atomic_ops/sysdeps/ordered.h: Ditto.
540 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
541 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
542 * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
543 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
544 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
545 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
546 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
547 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
548 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
549 * src/atomic_ops_stack.c: Ditto.
550 * src/atomic_ops_stack.h: Ditto.
551 * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
553 * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
555 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
558 * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
559 (regarding memory barrier).
560 * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
561 AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
562 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
563 AO_test_and_set): Replace FIXME with the comment saying it is
564 emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
565 * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
566 using InterlockedCompareExchange() (assuming the latter has a full
568 * src/atomic_ops/sysdeps/msftc/arm.h: Include
569 all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
570 of pre-ARMv6; add the comment.
572 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
575 * src/atomic_ops/sysdeps/armcc/arm_v6.h
576 (AO_compare_double_and_swap_double): Replace false/true with 0/1.
577 * src/atomic_ops/sysdeps/gcc/arm.h
578 (AO_compare_double_and_swap_double): Ditto.
579 * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
580 predefined macros (6J, 6ZK, 7A, 7M, 7R).
581 * src/atomic_ops/sysdeps/gcc/arm.h
582 (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
583 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
584 Correct the name (convert from the lower case).
585 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
587 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
588 AO_compare_and_swap): Comment out unimplemented code (and the
589 corresponding macros); add FIXME.
590 * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
591 _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
592 pthreads-w32 library); don't include signal.h, sys/time.h,
593 sys/select.h in this case; include windows.h instead.
594 * src/atomic_ops.c (AO_pause): Use Sleep() in case of
595 AO_USE_WIN32_PTHREADS (instead of select()).
596 * src/atomic_ops.c (all_sigs, initialized): Don't define in case
597 of AO_USE_WIN32_PTHREADS.
598 * src/atomic_ops.c (AO_compare_and_swap_emulation,
599 AO_compare_double_and_swap_double_emulation): Don't deal with
600 signals in case of AO_USE_WIN32_PTHREADS.
602 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
605 * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
607 * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
608 * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
610 * src/atomic_ops/sysdeps/msftc/common32_defs.h
611 (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
612 * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
613 declarations to common32_defs.h.
614 * src/atomic_ops/sysdeps/msftc/common32_defs.h
615 (AO_INTERLOCKED_VOLATILE): New macro defined (used by
616 Interlocked-based primitives) for compatibility with older VC++.
617 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
618 missing <intrin.h> if WinCE target.
619 * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
620 (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
621 * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
622 AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
623 AO_compare_and_swap_full): Move arch-independent primitives to
625 * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
626 better CPU (since Interlocked Add and Xchg primitives are available
628 * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
630 * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
632 * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
634 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
637 * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
638 ASSUME_WINDOWS98 with "AO_").
639 * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
641 * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
642 K&R-style function definition with ANSI C one.
643 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
644 Replace AO_TS_SET with its value 0xff (some compilers does not like
645 C enum consts inside inline assembler).
646 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
647 comment about "missing return value" warning.
648 * src/atomic_ops/sysdeps/msftc/x86.h
649 (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
650 * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
651 _InterlockedCompareExchange() with args and result of PVOID type
652 if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
653 DigitalMars compiler support).
654 * src/atomic_ops/sysdeps/msftc/x86.h
655 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
656 variables ("val1" is the lowest part of AO_double_t).
657 * src/atomic_ops/sysdeps/msftc/x86.h
658 (AO_compare_double_and_swap_double_full): Rename to
659 AO_double_compare_and_swap_full (as it has 3 args).
660 * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
663 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
666 * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
668 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
669 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
670 K&R-style function definition with ANSI C one.
671 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
672 * src/atomic_ops/sysdeps/gcc/x86_64.h
673 (AO_compare_double_and_swap_double_full): Fix comment.
674 * src/atomic_ops/sysdeps/gcc/x86_64.h
675 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
676 variables ("val1" is the lowest part of AO_double_t).
677 * src/atomic_ops/sysdeps/msftc/x86_64.h
678 (AO_compare_double_and_swap_double_full): Ditto.
679 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
681 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
683 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
684 "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
685 x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
686 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
687 "standard_ao_double_t.h" (same as in x86_64.h for gcc).
688 * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
689 <intrin.h> assuming at least VC++ v8.
690 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
691 prototypes (since they are always declared in intrin.h).
692 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
693 definition below CAS primitive (to textually group all asm-based
694 primitives together).
695 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
696 Implement for AO_ASM_X64_AVAILABLE case.
697 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
698 macro (replaced with AO_ASM_X64_AVAILABLE).
699 * src/atomic_ops/sysdeps/msftc/x86_64.h
700 (AO_compare_double_and_swap_double_full): Add intrinsic-based
701 implementation for VC++ v9+.
702 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
703 <xmmintrin.h> (and use "__m128" type) if _WIN64.
704 * src/atomic_ops/sysdeps/standard_ao_double_t.h
705 (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
706 "double_ptr_storage" is defined for all cases).
708 2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
710 * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
711 Renamed to AO_NO_SPARC_V9.
713 2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
715 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
716 AO_TS_VAL_t for "oldval" (for 64-bit support).
717 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
718 New function implemented.
720 2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
721 (diff107_cvs, resembling diff78 and diff88_cvs)
723 * src/atomic_ops/sysdeps/sunc/x86.h: New file.
724 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
725 * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
727 * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
728 implementation for VC++ v8+ (include <intrin.h> before it unless
729 WinCE target); use asm-based barrier implementation for Borland,
730 DigitalMars and Watcom.
731 * src/atomic_ops.h: Fix comment (for x86_64).
732 * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
733 headers for Sun C (if not AO_USE_PTHREAD_DEFS).
734 * src/atomic_ops.h: Include VC-specific arch headers for Borland,
735 DigitalMars and Watcom (Win32 target only).
737 2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
738 (diff87_cvs, resembling diff29, diff68, diff78 partly)
740 * doc/README.txt: Remove outdated info about Windows support.
741 * src/atomic_ops/generalize.h (AO_nop_full): Replace
742 K&R-style function definition with ANSI C one.
743 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
744 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
746 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
747 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
748 * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
749 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
750 * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
751 * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
752 * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
753 * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
754 * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
755 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
756 * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
757 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
760 2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
762 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
763 update modifiers to asms, refine clobbers to "cr0", use
764 cr0 instead of cr7, add explicit AO_fetch_and_add,
765 add UNTESTED 64 bit support.
767 2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
769 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
770 AO_compare_and_swap value differently, add
771 AO_compare_double_and_swap_double, some indentation fixes.
772 * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
773 robust and minimize clobbers, Add AO_compare_double_and_swap_double.
775 2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
777 * INSTALL: Add some platform-specific documentation.
778 * src/Makefile.msft: Fix copyright notice.
780 2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
782 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
783 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
784 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
785 * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
786 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
787 * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
788 * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
789 * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
790 * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
791 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
792 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
793 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
794 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
795 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
796 * src/atomic_ops.c: Fix comments.
797 * src/atomic_ops.h: Fix comments.
798 * src/atomic_ops_stack.c: Fix comments.
799 * src/atomic_ops_stack.h: Fix comments.
801 2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
803 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
806 2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
808 * config.guess, config.sub, configure: Regenerate/replace.
809 Use autoconf 2.61, automake 1.9.6.
811 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
813 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
816 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
818 * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
820 2008-07-24 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
822 * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
823 Add parentheses around addr arg for various functions.
825 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
827 * src/atomic_ops/sysdeps/gcc/powerpc.h:
828 Add const to first parameter of load calls (forgot one).
830 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
832 * doc/README.txt, src/atomic_ops/generalize.h,
833 src/atomic_ops/generalize-small.template,
834 src/atomic_ops/generalize-small.h,
835 src/atomic_ops/sysdeps/acquire_release_volatile.h,
836 src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
837 src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
838 src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
839 src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
840 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
841 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
842 src/atomic_ops/sysdeps/ao_t_is_int.h,
843 src/atomic_ops/sysdeps/atomic_load_store.h,
844 src/atomic_ops/sysdeps/char_atomic_load_store.h,
845 src/atomic_ops/sysdeps/int_atomic_load_store.h,
846 src/atomic_ops/sysdeps/short_atomic_load_store.h,
847 src/atomic_ops/sysdeps/generic_pthread.h,
848 src/atomic_ops/sysdeps/read_ordered.h,
849 src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
850 src/atomic_ops/sysdeps/gcc/arm.h,
851 src/atomic_ops/sysdeps/icc/ia64.h,
852 src/atomic_ops/sysdeps/ibmc/powerpc.h:
853 Add const to first parameter of load calls.
855 2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
857 * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
858 AO_or_full, and let it be autogenerated instead.
860 2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
862 * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
863 fixing a merge accident.
865 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
868 * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
871 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
874 * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
875 src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
876 * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
877 on char, align AO_t. Add cas, or.
878 * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
879 * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
880 * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
881 tests/Makefile.in: Regenerate.
883 2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
884 (Really Ian Wienand & Debian maintainers)
886 * src/atomic_ops/sysdeps/gcc/x86.h
887 (AO_compare_double_and_swap_double_full): Correctly account for
890 2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
892 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
893 double_ptr_storage default to long long; define everywhere.
895 2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
897 * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
898 compare_double_and_swap_double.
900 2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
902 * src/atomic_ops/generalize.h: Add test_and_set generalizations,
903 Add AO_double_compare_and_swap generalizations.
904 * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
905 * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
906 * src/atomic_ops/sysdeps/gcc/x86.h,
907 src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
908 compare_double_and_swap_double, commented out for msftc.
909 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add
910 double_ptr_storage field.
912 2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
913 (Merge from separate atomic_ops tree)
915 * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
916 double-width cas, and fix its implementation.
917 * doc/README.txt: Clarify use of _full. Add more warnings about
920 2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
922 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
923 %X1 modifier to support indexed addressing.
925 2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
927 * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
930 2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
932 * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
935 2007-06-26 Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
937 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
940 2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
942 * src/atomic_ops.h: include stddef.h
944 2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
946 * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
947 * src/atomic_ops.h: Add test for msftc/x86_64.h.
948 * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
949 * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
950 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
951 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
952 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
953 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
954 Replace unsigned long cast with size_t.
956 2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
958 * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
961 2007-05-14 Hans Boehm <Hans.Boehm@hp.com>
963 * doc/README.txt: Update to reflect C++0x effort.
965 2007-05-07 Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
967 * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
969 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
972 2006-11-09 Earl Chew (Agilent)
974 * msftc/x86.h: Follow Microsoft documentation and include
979 2006-07-11 Hans Boehm <Hans.Boehm@hp.com>
981 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
983 2006-03-28 Earl Chew (Agilent)
985 * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
986 * src/atomic_ops/sysdeps/msftc/x86.h:
987 Use new intrinsics available in MSVC 2003 and MSVC 2005.
988 Use inline assembler to generate mfence and byte sized xchg
989 Use correct prototype for InterlockedCompareExchange.
990 * src/atomic_ops.h: Add test for __PPC__ .
991 * tests/run_parallel.inc: Add simple VxWorks support.
992 * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
993 to silence compiler warnings.
995 2006-11-13 Hans Boehm <Hans.Boehm@hp.com>
997 * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
998 * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
1000 2005-11-04 Hans Boehm <Hans.Boehm@hp.com>
1002 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1003 all_acquire_release_volatile.h, instead of just the pointer-sized
1005 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1006 all_acquire_release_volatile.h and all_atomic_load_store.h,
1007 instead of just the pointer-sized versions.
1011 2005-09-27 Hans Boehm <Hans.Boehm@hp.com>
1013 * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
1014 * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
1015 ordered_except_wr.h.
1016 * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
1017 instead of duplicating it.
1018 * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
1020 2005-09-16 Hans Boehm <Hans.Boehm@hp.com>
1022 * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
1023 definition with one that might actually work. (Thanks to Kazu
1024 Hirata and Paul Brook.)
1026 2005-08-01 Hans Boehm <Hans.Boehm@hp.com>
1028 * src/atomic_ops/Makefile.am: Change function naming from "byte" to
1033 2005-03-21 Hans Boehm <Hans.Boehm@hp.com>
1034 Fix various acquire_release_volatile.h files to reflect the fact
1035 that both icc and gcc seem to reorder ordinary memory accesses around
1036 volatile accesses early in the compilation. Modify the acquire
1037 release test to catch this problem (with high probability, and only on
1040 2005-03 Hans Boehm <Hans.Boehm@hp.com>
1041 Fixes for recently introduced bugs. Update x86 and x86-64 assembly
1042 syntax to deal with complaints by some recent gcc versions.
1044 2005-02 Hans Boehm <Hans.Boehm@hp.com>
1045 Added libatomic_ops_gpl library with support for mostly
1046 lock-free stack and malloc().
1048 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
1049 Hans Boehm <Hans.Boehm@hp.com>
1050 Use autoconf, automake, starting with code from Debian package.
1053 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1054 * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
1055 Change most platforms to use byte-wide test-and-set locations.
1057 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1058 * ao_t_is_int.h: Add to trivially support int-wide operations
1059 on platforms with int-sized pointers.
1061 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1062 * gcc/powerpc.h: First serious attempt to support PowerPC (with
1063 help from Maged Michael and others).
1065 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1066 * sunc/sparc.[hS]: Added minimal support for the Sun SPARC compiler.
1067 * atomic_ops_sysdeps.S: Add support for platforms that require
1068 out-of-line assembly code.
1070 2004-10 Hans Boehm <Hans.Boehm@hp.com>
1071 More work on char, short, int sized data. Add both
1072 compare_double_and_swap_double and compare_and_swap_double.
1073 Typically each platform will provide at most one of these.
1075 2004-07-02 Ranko Zivojnovic
1076 Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
1078 2004-06 Hans Boehm <Hans.Boehm@hp.com>
1079 Start to add atomic_ops primitives for different sized data.
1081 2003-12-18 Hans Boehm <Hans.Boehm@hp.com>
1083 * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
1084 Fix support for ecc on IA64. Remove compiler_barrier workaround
1085 for gcc 3.4 and later.
1087 2003-12-17 Hans Boehm <Hans.Boehm@hp.com>
1089 * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
1090 atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
1091 Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
1092 for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
1093 compiler on PA_RISC and IA64.
1095 2003-12-09 Hans Boehm <Hans.Boehm@hp.com>
1097 * many: Install under "atomic_ops" instead of "ao".
1098 Change atomic_ops include file structure. Auxiliary include
1099 files are all under include/atomic_ops.
1100 Fix (hopefully) "make dist" in atomic_ops distribution.
1101 Renamed various types to end in _t, though the old versions
1102 are still defined for backward compatibility.
1104 2003-12-08 Carlos O'Donell <carlos@baldric.uwo.ca>
1106 * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
1107 AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
1108 helper macros. AO_test_and_set_full uses helper macros.
1111 Started sometime after version 0.4 release. Currently the format is
1112 informal. Eventually should become more GNU-like.