3 2012-08-09 Ivan Maidanski <ivmai@mail.ru>
5 * README: Change version to 7.2d (rev. D).
7 2012-08-01 Ivan Maidanski <ivmai@mail.ru>
9 * src/atomic_ops.h (AO_compiler_barrier): Add parentheses and cast to
12 2012-07-12 Ivan Maidanski <ivmai@mail.ru>
14 * config.guess: Regenerate (by autoreconf -vif using autoconf-2.68,
15 automake-1.11.1 and libtool-2.4).
16 * config.sub: Likewise.
18 2012-07-04 Ivan Maidanski <ivmai@mail.ru>
20 * src/atomic_ops/sysdeps/gcc/x86.h
21 (AO_compare_double_and_swap_double_full): Use EDI register for
22 "new_val1" argument in PIC mode only for GCC 4.3+ to workaround
23 a problem with older compiler versions (e.g., GCC 4.2.1 [FreeBSD])
24 that do not recognize 'D' as a valid register specification; update
27 2012-07-01 Ivan Maidanski <ivmai@mail.ru>
29 * src/atomic_ops/generalize-small.template
30 (AO_XSIZE_fetch_and_add_full,
31 AO_XSIZE_fetch_and_add_acquire, AO_XSIZE_fetch_and_add_release):
32 Fix type of function result by adding
34 * src/atomic_ops/generalize-small.h: Regenerate.
38 2012-05-11 Ivan Maidanski <ivmai@mail.ru>
40 * configure.ac, README: Bump version to 7.2 (final).
41 * configure: Regenerate.
43 2012-05-01 H.J. Lu <hjl.tools@gmail.com>
45 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_fetch_and_add_full,
46 AO_and_full, AO_or_full, AO_xor_full, AO_compare_and_swap_full):
47 Remove 'q' suffix in asm instruction.
49 2012-04-16 H.J. Lu <hjl.tools@gmail.com>
51 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_T_IS_INT): Defined
54 2012-03-28 Ivan Maidanski <ivmai@mail.ru>
56 * configure.ac (PICFLAG): Adjust AC_MSG_CHECKING message; report
57 "none" result if no -fPIC is needed (for Cygwin/MinGW); determine
58 whether GCC -fPIC option causes __PIC__ macro definition; pass
59 -D __PIC__ to PICFLAG (instead of CFLAGS) only if not defined
60 automatically in case -fPIC specified; update comment.
62 2012-03-26 Ivan Maidanski <ivmai@mail.ru>
64 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Do not use __m128
65 if GCC pre-v4 (at least, xmmintrin.h is missing in gcc-3.4.3-x86_64
66 included in Solaris 10 distribution).
68 2012-03-26 Ivan Maidanski <ivmai@mail.ru>
70 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Fix a typo in
73 2012-03-19 Ivan Maidanski <ivmai@mail.ru>
75 * configure: Regenerate.
76 * Makefile.in: Likewise.
78 2011-08-14 Petter Urkedal <paurkedal@gmail.com>
80 * atomic_ops.pc.in -> pkgconfig/atomic_ops.pc.in: Moved.
81 * pkgconfig/atomic_ops-uninstalled.pc.in: Added developer version.
82 * configure.ac, Makefile.am: Update accordingly.
84 2011-08-04 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
86 * atomic_ops.pc.in: new file.
87 * Makefile.am (pkgconfigdir, pkgconfig_DATA): new items.
88 * configure.ac (AC_CONFIG_FILES): add atomic_ops.pc.
89 * configure, Makefile.in: Regenerate.
91 2012-03-07 Ivan Maidanski <ivmai@mail.ru>
93 * src/atomic_ops/sysdeps/gcc/x86.h
94 (AO_compare_double_and_swap_double_full): Use EDI register for
95 "new_val1" argument instead of a memory operand and use XCHG assembler
96 instruction instead of push/pop in case of PIC mode (to workaround
97 a bug in GCC 4.6.1); update the comment.
99 2012-03-07 Ivan Maidanski <ivmai@mail.ru>
101 * src/atomic_ops_stack.c (AO_stack_push_release): Make "cptr" local
102 variable volatile to workaround a bug in clang-1.1/x86 compiler; add
105 2012-03-07 Ivan Maidanski <ivmai@mail.ru>
107 * src/atomic_ops/sysdeps/gcc/x86.h
108 (AO_compare_double_and_swap_double_full): Fix argument name in the
110 * src/atomic_ops/sysdeps/sunc/x86.h
111 (AO_compare_double_and_swap_double_full): Likewise.
113 2012-03-04 Ivan Maidanski <ivmai@mail.ru>
115 * src/atomic_ops_malloc.h (AO_malloc_enable_mmap): Fix a typo in the
118 2012-01-19 Ivan Maidanski <ivmai@mail.ru>
120 * tests/test_atomic.c (main): Put "void" keyword into the arguments
121 specification of the function prototype.
122 * tests/test_stack.c (main): Likewise.
124 2011-12-16 Ivan Maidanski <ivmai@mail.ru>
126 * src/atomic_ops/sysdeps/gcc/arm.h (__ARM_ARCH_7__, __ARM_ARCH_7A__):
127 Recognize to override __ARM_ARCH_5xx__ macros (since Android NDK GCC
128 defines both for armv7); update comment.
130 2011-11-29 Ivan Maidanski <ivmai@mail.ru>
132 * src/atomic_ops/sysdeps/gcc/hexagon.h: Include generalize.h file
133 before ao_t_is_int.h one.
134 * src/atomic_ops/sysdeps/gcc/ia64.h: Likewise.
135 * src/atomic_ops/sysdeps/hpc/ia64.h: Likewise.
137 2011-11-03 Ivan Maidanski <ivmai@mail.ru>
139 * src/atomic_ops/generalize-small.template
140 (AO_XSIZE_fetch_and_add_full, AO_XSIZE_fetch_and_add_acquire,
141 AO_XSIZE_fetch_and_add_release): Change return type from AO_t to
143 * src/atomic_ops/generalize-small.h: Regenerate.
145 2011-10-24 Ivan Maidanski <ivmai@mail.ru>
147 * src/atomic_ops/sysdeps/gcc/mips.h (AO_compare_and_swap_full):
148 Change "result" local variable type from AO_t to int.
149 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_compare_and_swap_full):
152 2011-10-24 Ivan Maidanski <ivmai@mail.ru>
154 * tests/test_atomic_include.h: Regenerate.
156 2011-10-24 Ivan Maidanski <ivmai@mail.ru>
158 * tests/test_atomic_include.template (test_atomicXX): Add action for
159 the missing AO_compare_and_swap primitive.
161 2011-10-21 Ivan Maidanski <ivmai@mail.ru>
163 * src/atomic_ops.c (init_lock): Define only unless AO_USE_NO_SIGNALS.
165 2011-10-21 Ivan Maidanski <ivmai@mail.ru>
167 * doc/README.txt: Fix a typo.
169 2011-10-21 Ivan Maidanski <ivmai@mail.ru>
171 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_compare_and_swap): Cast
172 returned value to int.
174 2011-10-17 Ivan Maidanski <ivmai@mail.ru>
176 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
178 2011-10-17 Ivan Maidanski <ivmai@mail.ru> (really Thorsten Glaser)
180 * src/atomic_ops/sysdeps/gcc/m68k.h (AO_test_and_set_full): Cast the
183 2011-10-15 Ivan Maidanski <ivmai@mail.ru>
185 * src/atomic_ops/sysdeps/gcc/s390.h (AO_compare_and_swap_full):
186 Change return from AO_t to int.
187 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_compare_and_swap_acquire,
188 AO_compare_and_swap_release, AO_compare_and_swap_full): Likewise.
190 2011-10-11 Ivan Maidanski <ivmai@mail.ru> (really Linas Vepstas)
192 * src/atomic_ops/sysdeps/Makefile.am (nobase_private_HEADERS): Add
194 * src/atomic_ops.h: Include hexagon.h file.
195 * src/atomic_ops/sysdeps/gcc/hexagon.h: New file.
197 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
200 (AO_non_posix_implementation_is_entirely_in_headers): Make external.
202 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
204 * configure: Regenerate.
205 * tests/Makefile.in: Ditto.
206 * tests/test_atomic_include.h: Ditto.
208 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
210 * configure.ac (PICFLAG, THREADDLLIBS): Define as empty for MinGW.
211 * configure.ac (have_pthreads): New definition (set to true unless
213 * configure.ac (HAVE_PTHREAD_H): New AM conditional (based on
214 have_pthreads value).
215 * tests/Makefile.am (test_atomic_pthreads_SOURCES,
216 test_atomic_pthreads_CPPFLAGS, test_atomic_pthreads_LDADD): Define
217 only if HAVE_PTHREAD_H.
218 * tests/Makefile.am (TESTS): Don't include test_atomic_pthreads unless
220 * tests/Makefile.am (check_PROGRAMS): Define to TESTS value.
222 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
224 * configure.ac (PICFLAG): Set to -fPIC if GCC but not Gygwin.
226 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
228 * tests/test_malloc.c (LIST_LENGTH, LARGE_OBJ_SIZE): Define to
229 a smaller value unless HAVE_MMAP.
231 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
233 * tests/test_malloc.c (cons, run_one_test): Call exit with a non-zero
234 code (instead of abort) if out of memory.
235 * tests/test_stack.c (add_elements): Likewise.
236 * tests/test_stack.c (main): Use a distinct exit code if a thread
239 2011-09-15 Ivan Maidanski <ivmai@mail.ru>
241 * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo (replace AO_FORCE_CAS
242 with AO_REQUIRE_CAS in a comment).
244 2011-09-08 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
246 * src/Makefile.am, tests/Makefile.am: Set compiler include paths
247 to $(top_builddir)/src and $(top_srcdir)/src.
248 * src/Makefile.in: Regenerate.
249 * tests/Makefile.in: Ditto.
251 2011-07-14 Ivan Maidanski <ivmai@mail.ru>
253 * tests/list_atomic.template (list_atomicXX): Remove "addr" local
254 variable (use "&val" instead); initialize "newval" and "oldval"
255 local variables; rename "tsaddr" local variable to "ts" one.
256 * tests/list_atomic.template (list_atomicXX): Fix
257 AO_test_and_setXX call (pass address instead of value).
258 * tests/list_atomic.template: Expand all tabs to spaces; remove
259 trailing spaces at EOLn.
260 * tests/run_parallel.inc: Ditto.
261 * tests/test_atomic.c: Ditto.
262 * tests/list_atomic.c: Regenerate.
263 * tests/run_parallel.inc (AO_PTRDIFF_T): New macro.
264 * tests/run_parallel.inc (tramp): Cast between pointer and integer
265 types via casting to AO_PTRDIFF_T.
266 * tests/test_atomic.c (add1sub1_thr, acqrel_thr): Ditto.
267 * tests/run_parallel.inc (run_parallel): Adjust printf format
268 specifiers for DWORD parameters.
269 * tests/test_stack.c: Skip test if no pthreads.
271 2011-06-27 Ivan Maidanski <ivmai@mail.ru> (really Jeremy Huddleston)
273 * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
274 Explicitly cast 0xff to unsigned char (otherwise LLVM v2.7 GAS
275 reports an error); don't recognize AO_XCHGB_RET_WORD.
276 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
279 2011-06-15 Ivan Maidanski <ivmai@mail.ru>
281 * configure.ac, README: Change to version 7.2alpha7.
282 * configure: Regenerate.
286 2011-06-14 Ivan Maidanski <ivmai@mail.ru>
288 * configure.ac, README: Change to version 7.2alpha6.
289 * configure: Regenerate.
291 2011-06-07 Ivan Maidanski <ivmai@mail.ru>
293 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, AO_load): Do not
294 define for pre-ARMv6 directly (revert part of the previous
296 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set,
297 AO_test_and_set_full): Refine the comment.
298 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Define
299 SWP-based implementation at the end of file (if none of
300 AO_test_and_set functions are defined previously).
301 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Remove
302 SWP-based implementation (revert part of the previous commit).
303 * src/atomic_ops/sysdeps/gcc/arm.h (AO_store): Remove redundant
304 definition at the file end (revert part of the previous commit).
306 2011-06-07 Ivan Maidanski <ivmai@mail.ru>
308 * src/atomic_ops/sysdeps/gcc/arm.h: Handle ARMv6M architecture.
309 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Force "swp"
310 instruction usage (instead of ldrex/strex) if AO_FORCE_USE_SWP;
312 * src/atomic_ops/sysdeps/gcc/arm.h
313 (AO_compare_double_and_swap_double): Handle ARMv7EM architecture
315 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set, AO_nop_full,
316 AO_load, AO_store): Define at the end of file (in case not defined
319 2011-06-07 Ivan Maidanski <ivmai@mail.ru>
321 * src/atomic_ops/generalize.h: Reformat code.
322 * src/atomic_ops/generalize.h (AO_test_and_set_acquire): Fix
324 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_test_and_set): Ditto.
325 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Ditto.
326 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Add
327 a comment (about SWP instruction).
329 2011-06-06 Ivan Maidanski <ivmai@mail.ru>
331 * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
332 AO_THUMB_RESTORE_MODE): Use single-digit labels (to workaround
333 a bug in GCC v4.2.1 which reports "garbage following instruction"
335 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Use "IT"
336 instruction only for Thumb-2 mode.
338 2011-06-06 Ivan Maidanski <ivmai@mail.ru>
340 * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
341 AO_THUMB_RESTORE_MODE, AO_THUMB_SWITCH_CLOBBERS): Define as empty
343 * src/atomic_ops/sysdeps/gcc/arm.h (AO_store, AO_test_and_set,
344 AO_fetch_and_add, AO_fetch_and_add1, AO_fetch_and_sub1,
345 AO_compare_and_swap, AO_compare_double_and_swap_double): Remove
346 unnecessary "memory" keyword from the list of clobbered registers
347 (revert part of the previous commit).
348 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Add
349 a comment for "IT" instruction.
350 * src/atomic_ops/sysdeps/gcc/arm.h
351 (AO_compare_double_and_swap_double): Don't define on the
352 architectures where unimplemented; add a comment; replace return
353 (in the loop) statement with break.
355 2011-06-06 Ivan Maidanski <ivmai@mail.ru>
357 * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
358 AO_THUMB_RESTORE_MODE, AO_THUMB_SWITCH_CLOBBERS): Define new
359 macro (to switch temporarily CPU mode to ARM in inline assembler
360 if compiling in the Thumb mode and to restore it back on leave).
361 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, AO_store,
362 AO_test_and_set, AO_fetch_and_add, AO_fetch_and_add1,
363 AO_fetch_and_sub1, AO_compare_and_swap, AO_test_and_set_full):
364 Enable compilation in the Thumb mode (use AO_THUMB_GO_ARM,
365 AO_THUMB_RESTORE_MODE and AO_THUMB_SWITCH_CLOBBERS macros).
366 * src/atomic_ops/sysdeps/gcc/arm.h (AO_store, AO_test_and_set,
367 AO_fetch_and_add, AO_fetch_and_add1, AO_fetch_and_sub1,
368 AO_compare_and_swap, AO_compare_double_and_swap_double): Add
369 "memory" to the list of clobbered registers.
371 2011-06-06 Ivan Maidanski <ivmai@mail.ru>
373 * src/atomic_ops/sysdeps/gcc/arm.h: Reformat code.
374 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
375 AO_test_and_set_full): Add assembler comment containing the
378 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
380 * tests/test_malloc.c (run_one_test): Test AO_malloc() result
381 (if out of memory then print the message and abort).
382 * tests/test_stack.c (add_elements): Ditto.
384 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
386 * src/atomic_ops/generalize.h (AO_HAVE_or_full): Add missing
388 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_HAVE_nop_write):
390 * src/atomic_ops/sysdeps/read_ordered.h (AO_HAVE_nop_read): Ditto.
391 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_store_release):
394 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
396 * src/atomic_ops/generalize-small.template
397 (AO_HAVE_XSIZE_fetch_and_add_full): Add missing definition.
398 * src/atomic_ops/generalize-small.template: Reformat code.
399 * src/atomic_ops/generalize-small.h: Regenerate.
401 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
403 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Remove
404 blank line between AO_func and AO_HAVE_func definitions.
405 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
406 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
407 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
408 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
409 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
410 * src/atomic_ops/sysdeps/ordered.h: Ditto.
411 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
412 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
413 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
414 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
415 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
416 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
417 * src/atomic_ops/sysdeps/gcc/cris.h: Ditto.
418 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
419 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
420 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
421 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
422 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
423 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
424 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
425 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
426 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
427 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
428 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
429 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
430 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
431 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
432 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
433 * src/atomic_ops/sysdeps/sunc/sparc.h: Ditto.
434 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
435 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
436 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Reformat
438 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
439 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
440 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
441 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
442 * src/atomic_ops/sysdeps/ordered.h: Ditto.
443 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
444 * src/atomic_ops/sysdeps/test_and_set_t_is_char.h: Remove file
446 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Don't
448 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire,
449 AO_test_and_set, AO_compare_and_swap): Merge adjacent definitions.
450 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_store_release):
452 * src/atomic_ops/sysdeps/sunc/sparc.h: Expand all tabs to spaces;
453 remove trailing spaces at EOLn.
455 2011-06-02 Ivan Maidanski <ivmai@mail.ru>
457 * tests/test_malloc.c (main): Remove unused "exper_n" local
459 * tests/test_stack.c (run_one_test): Remove unused "aux" local
462 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
464 * src/atomic_ops/sysdeps/gcc/arm.h
465 (AO_compare_double_and_swap_double,
466 AO_HAVE_compare_double_and_swap_double): Define only starting from
468 * src/atomic_ops/sysdeps/gcc/arm.h
469 (AO_compare_double_and_swap_double): Fix function name in
470 assembler code; replace while (1) loop with "do-while".
472 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
474 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full):
475 Specify "%b0" (instead of "%0") in "xchg" instruction (to
476 workaround a bug in Sun C 5.11).
477 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
480 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
482 * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
483 Sun C compiler (call "release" variant of AO_store).
485 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
487 * configure.ac (_PTHREADS): New template (used for NetBSD).
488 * configure.ac (THREADDLLIBS): New macro.
489 * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD,
490 test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS
491 instead of "-lpthread".
492 * configure: Regenerate.
493 * Makefile.in: Ditto.
494 * doc/Makefile.in: Ditto.
495 * src/Makefile.in: Ditto.
496 * src/atomic_ops/Makefile.in: Ditto.
497 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
498 * src/config.h.in: Ditto.
499 * tests/Makefile.in: Ditto.
501 2011-05-30 Ivan Maidanski <ivmai@mail.ru>
503 * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not
504 define the corresponding macro.
505 * configure.ac: Don't check for GCC twice.
506 * configure: Regenerate.
507 * tests/test_malloc.c (DEFAULT_NTHREADS): New macro.
508 * tests/test_malloc.c (run_one_test): Refine printed message (in
510 * tests/test_malloc.c (main): Use DEFAULT_NTHREADS.
511 * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer.
512 * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS,
513 OPT_MAP_ANON): New macro.
514 * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as
515 file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON).
516 * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON,
517 GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open()
520 2011-05-11 Ivan Maidanski <ivmai@mail.ru>
522 * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
524 * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and
525 LARGE_OBJ_SIZE, respectively.
526 * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH,
527 LARGE_OBJ_SIZE): Do not define unless undefined.
528 * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST
531 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
533 * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
535 * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
537 * tests/Makefile.am: Remove trailing spaces at EOLn.
538 * tests/Makefile.in: Regenerate.
540 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
542 * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
544 * tests/test_stack.c: Expand all tabs to spaces.
545 * tests/test_atomic_include.h: Ditto.
546 * tests/test_stack.c (main): Free pop'ed elements.
547 * tests/test_atomic_include.h (test_atomic, test_atomic_release,
548 test_atomic_acquire, test_atomic_read, test_atomic_write,
549 test_atomic_full, test_atomic_release_write,
550 test_atomic_acquire_read): Remove prototype.
552 2011-04-22 Ivan Maidanski <ivmai@mail.ru>
554 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
555 asm; remove redundant trailing ';'.
557 2011-04-11 Ivan Maidanski <ivmai@mail.ru> (really Jim Meyering)
559 * doc/README.txt: Remove doubled words in comments.
561 2011-03-18 Ivan Maidanski <ivmai@mail.ru>
563 * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
564 ARM chips instead of all the currently existing v6+ ones.
566 2011-03-13 Ivan Maidanski <ivmai@mail.ru>
568 * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
569 expand all tabs to spaces.
570 * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
571 Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug).
572 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
575 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
577 * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl.
578 * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in
579 a conditional expression) to prevent a compiler warning.
580 * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove
581 trailing spaces at EOLn.
583 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
585 * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
586 AO_USE_NANOSLEEP for NaCl.
588 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
590 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
591 automake-1.11.1 and libtool-2.4).
594 2011-02-09 Ivan Maidanski <ivmai@mail.ru>
596 * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
598 * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
600 * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS.
601 * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP.
602 * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code.
603 * src/atomic_ops.c (AO_pause): Use nanosleep() if
605 * src/atomic_ops.c (all_sigs, initialized,
606 AO_compare_and_swap_emulation,
607 AO_compare_double_and_swap_double_emulation): Use
608 AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS.
610 2011-01-07 Ivan Maidanski <ivmai@mail.ru>
612 * src/.cvsignore: Add more auto-generated files.
613 * tests/.cvsignore: Ditto.
614 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store,
615 AO_compare_double_and_swap_double): Reformat code.
616 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
617 AO_compare_double_and_swap_double): Ditto.
618 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
619 Produce "it eq" instruction only for Thumb mode.
620 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
622 2010-11-23 Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
624 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
625 Insert "it eq" just before "strexeq" (required for Thumb-2 mode,
626 ignored in ARM mode).
627 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
629 2010-09-15 Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
631 * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__.
632 * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__.
633 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is
635 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS
636 is defined but emul_cas.h has not been included.
637 * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo.
639 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
641 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
642 automake-1.11.1 and libtool-2.2.8).
645 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
647 * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
650 2010-05-30 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
652 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use
653 "register long" (instead of "int") for "ret" variable.
654 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace
655 with AO_test_and_set_full (same for AO_HAVE_test_and_set).
656 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full):
657 New function implemented.
659 2010-05-22 Ivan Maidanski <ivmai@mail.ru>
661 * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
663 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
665 2010-05-21 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
667 * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
668 * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
670 2010-04-29 Ivan Maidanski <ivmai@mail.ru>
672 * doc/README_malloc.txt: Fix a typo.
673 * doc/README_stack.txt: Ditto.
675 2010-02-25 Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
677 * .cvsignore: New file.
678 * doc/.cvsignore: Ditto.
679 * src/.cvsignore: Ditto.
680 * src/atomic_ops/.cvsignore: Ditto.
681 * src/atomic_ops/sysdeps/.cvsignore: Ditto.
682 * tests/.cvsignore: Ditto.
684 2010-02-19 Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
686 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full):
687 Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN.
688 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
690 * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined
691 if GCC v4.2+ or Intel compiler v11.1+ (only for amd64).
692 * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel
693 compiler in GCC compatible mode (only for x86 and amd64).
695 2010-02-18 Ivan Maidanski <ivmai@mail.ru>
697 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check
698 for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on
699 all x86_64/amd64 chips); remove the comment.
700 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
701 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only
702 if AO_ASM_X64_AVAILABLE.
703 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
704 Use built-in __sync_bool_compare_and_swap() if GCC v4.2+.
706 2010-02-17 Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
708 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full,
709 AO_compare_double_and_swap_double_full): Use EAX for the result
710 since cmpxchg clobbers it.
711 * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full,
712 AO_compare_double_and_swap_double_full): Ditto.
713 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full,
714 AO_compare_double_and_swap_double_full): Ditto.
715 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full,
716 AO_compare_double_and_swap_double_full): Ditto.
718 2010-02-04 Ivan Maidanski <ivmai@mail.ru>
720 * doc/Makefile.in: Regenerate.
722 2010-02-04 Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
724 * doc/Makefile.am: Remove duplicate file in the list.
726 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
728 * ChangeLog: Fix some typos.
730 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
732 * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
733 Define "i" variable only if used (to suppress a compiler warning).
735 2010-02-02 Ivan Maidanski <ivmai@mail.ru>
737 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix
738 "xchg" data size (remove "l" suffix).
739 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
741 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
743 * src/atomic_ops/sysdeps/sunc/x86.h
744 (AO_compare_double_and_swap_double_full,
745 AO_HAVE_compare_double_and_swap_double_full): Comment out (since
746 not tested, might be wrong, and tickles a bug in some Sun CC
747 versions; besides, __PIC__ macro is never predefined by Sun CC).
749 2010-01-29 Ivan Maidanski <ivmai@mail.ru>
751 * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b,
752 automake-1.11.1, autoconf-2.65).
753 * Makefile.in: Ditto.
756 * config.guess: Ditto.
762 * mkinstalldirs: Ditto.
763 * doc/Makefile.in: Ditto.
764 * src/Makefile.in: Ditto.
765 * src/atomic_ops/Makefile.in: Ditto.
766 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
767 * src/config.h.in: Ditto.
768 * tests/Makefile.in: Ditto.
770 2009-12-19 Ivan Maidanski <ivmai@mail.ru>
772 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
773 AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
775 2009-12-17 Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
777 * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
779 2009-12-04 Ivan Maidanski <ivmai@mail.ru>
781 * configure.ac, README: Change to version 7.2alpha5.
782 * configure: Regenerate.
786 2009-12-02 Ivan Maidanski <ivmai@mail.ru>
788 * configure.ac, README: Change to version 7.2alpha4.
789 * configure: Regenerate.
791 2009-12-01 Ivan Maidanski <ivmai@mail.ru>
793 * configure.ac, README: Change to version 1.3alpha1.
794 * configure: Regenerate.
796 2009-11-21 Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
798 * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
800 * configure: Regenerate.
802 2009-10-06 Ivan Maidanski <ivmai@mail.ru>
804 * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
807 2009-10-05 Ivan Maidanski <ivmai@mail.ru>
809 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
811 2009-10-05 Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
813 * src/atomic_ops/sysdeps/gcc/sh.h: New file.
814 * src/atomic_ops.h: Include gcc/sh.h if __arm__.
815 * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
817 2009-10-02 Ivan Maidanski <ivmai@mail.ru>
819 * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
820 msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
821 entries; order all entries alphabetically.
822 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
824 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
826 * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
827 automake-1.10.2, autoconf-2.64).
829 * Makefile.in: Ditto.
831 * config.guess: Ditto.
837 * mkinstalldirs: Ditto.
838 * doc/Makefile.in: Ditto.
839 * src/config.h.in: Ditto.
840 * src/Makefile.in: Ditto.
841 * src/atomic_ops/Makefile.in: Ditto.
842 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
843 * tests/Makefile.in: Ditto.
845 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
847 * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
848 for the preprocessor directives.
849 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
851 2009-09-30 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
853 * README: Move notes from the hand-edited part of INSTALL which
854 was overwritten by Automake recently.
856 2009-09-26 Ivan Maidanski <ivmai@mail.ru>
858 * aclocal.m4: Regenerate (by autoreconf -vif).
859 * config.guess: Ditto.
863 * Makefile.in: Ditto.
864 * doc/Makefile.in: Ditto.
865 * src/config.h.in: Ditto.
866 * src/Makefile.in: Ditto.
867 * src/atomic_ops/Makefile.in: Ditto.
868 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
869 * tests/Makefile.in: Ditto.
871 2009-09-25 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
873 * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
875 2009-09-16 Ivan Maidanski <ivmai@mail.ru>
877 * ChangeLog: Remove trailing spaces at EOLn.
878 * doc/README.txt: Expand all tabs to spaces; remove trailing
879 spaces at EOLn; remove multiple trailing blank lines.
880 * src/atomic_ops.c: Ditto.
881 * src/atomic_ops.h: Ditto.
882 * src/atomic_ops/generalize-small.h: Ditto.
883 * src/atomic_ops/generalize.h: Ditto.
884 * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
885 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
886 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
887 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
888 * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
889 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
890 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
891 * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
892 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
893 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
894 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
895 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
896 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
897 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
898 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
899 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
900 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
901 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
902 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
903 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
904 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
905 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
906 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
907 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
908 * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
909 * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
910 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
911 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
912 * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
913 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
914 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
915 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
916 * src/atomic_ops/sysdeps/ordered.h: Ditto.
917 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
918 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
919 * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
920 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
921 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
922 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
923 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
924 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
925 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
926 * src/atomic_ops_stack.c: Ditto.
927 * src/atomic_ops_stack.h: Ditto.
928 * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
930 * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
932 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
935 * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
936 (regarding memory barrier).
937 * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
938 AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
939 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
940 AO_test_and_set): Replace FIXME with the comment saying it is
941 emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
942 * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
943 using InterlockedCompareExchange() (assuming the latter has a full
945 * src/atomic_ops/sysdeps/msftc/arm.h: Include
946 all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
947 of pre-ARMv6; add the comment.
949 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
952 * src/atomic_ops/sysdeps/armcc/arm_v6.h
953 (AO_compare_double_and_swap_double): Replace false/true with 0/1.
954 * src/atomic_ops/sysdeps/gcc/arm.h
955 (AO_compare_double_and_swap_double): Ditto.
956 * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
957 predefined macros (6J, 6ZK, 7A, 7M, 7R).
958 * src/atomic_ops/sysdeps/gcc/arm.h
959 (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
960 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
961 Correct the name (convert from the lower case).
962 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
964 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
965 AO_compare_and_swap): Comment out unimplemented code (and the
966 corresponding macros); add FIXME.
967 * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
968 _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
969 pthreads-w32 library); don't include signal.h, sys/time.h,
970 sys/select.h in this case; include windows.h instead.
971 * src/atomic_ops.c (AO_pause): Use Sleep() in case of
972 AO_USE_WIN32_PTHREADS (instead of select()).
973 * src/atomic_ops.c (all_sigs, initialized): Don't define in case
974 of AO_USE_WIN32_PTHREADS.
975 * src/atomic_ops.c (AO_compare_and_swap_emulation,
976 AO_compare_double_and_swap_double_emulation): Don't deal with
977 signals in case of AO_USE_WIN32_PTHREADS.
979 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
982 * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
984 * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
985 * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
987 * src/atomic_ops/sysdeps/msftc/common32_defs.h
988 (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
989 * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
990 declarations to common32_defs.h.
991 * src/atomic_ops/sysdeps/msftc/common32_defs.h
992 (AO_INTERLOCKED_VOLATILE): New macro defined (used by
993 Interlocked-based primitives) for compatibility with older VC++.
994 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
995 missing <intrin.h> if WinCE target.
996 * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
997 (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
998 * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
999 AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
1000 AO_compare_and_swap_full): Move arch-independent primitives to
1002 * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
1003 better CPU (since Interlocked Add and Xchg primitives are available
1005 * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
1007 * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
1009 * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
1011 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
1014 * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
1015 ASSUME_WINDOWS98 with "AO_").
1016 * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
1018 * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
1019 K&R-style function definition with ANSI C one.
1020 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
1021 Replace AO_TS_SET with its value 0xff (some compilers does not like
1022 C enum consts inside inline assembler).
1023 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
1024 comment about "missing return value" warning.
1025 * src/atomic_ops/sysdeps/msftc/x86.h
1026 (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
1027 * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
1028 _InterlockedCompareExchange() with args and result of PVOID type
1029 if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
1030 DigitalMars compiler support).
1031 * src/atomic_ops/sysdeps/msftc/x86.h
1032 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
1033 variables ("val1" is the lowest part of AO_double_t).
1034 * src/atomic_ops/sysdeps/msftc/x86.h
1035 (AO_compare_double_and_swap_double_full): Rename to
1036 AO_double_compare_and_swap_full (as it has 3 args).
1037 * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
1040 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
1043 * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
1044 and 32-bit WinChips.
1045 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
1046 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
1047 K&R-style function definition with ANSI C one.
1048 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
1049 * src/atomic_ops/sysdeps/gcc/x86_64.h
1050 (AO_compare_double_and_swap_double_full): Fix comment.
1051 * src/atomic_ops/sysdeps/gcc/x86_64.h
1052 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
1053 variables ("val1" is the lowest part of AO_double_t).
1054 * src/atomic_ops/sysdeps/msftc/x86_64.h
1055 (AO_compare_double_and_swap_double_full): Ditto.
1056 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
1058 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
1060 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
1061 "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
1062 x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
1063 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
1064 "standard_ao_double_t.h" (same as in x86_64.h for gcc).
1065 * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
1066 <intrin.h> assuming at least VC++ v8.
1067 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
1068 prototypes (since they are always declared in intrin.h).
1069 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
1070 definition below CAS primitive (to textually group all asm-based
1071 primitives together).
1072 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
1073 Implement for AO_ASM_X64_AVAILABLE case.
1074 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
1075 macro (replaced with AO_ASM_X64_AVAILABLE).
1076 * src/atomic_ops/sysdeps/msftc/x86_64.h
1077 (AO_compare_double_and_swap_double_full): Add intrinsic-based
1078 implementation for VC++ v9+.
1079 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
1080 <xmmintrin.h> (and use "__m128" type) if _WIN64.
1081 * src/atomic_ops/sysdeps/standard_ao_double_t.h
1082 (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
1083 "double_ptr_storage" is defined for all cases).
1085 2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
1087 * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
1088 Renamed to AO_NO_SPARC_V9.
1090 2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
1092 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
1093 AO_TS_VAL_t for "oldval" (for 64-bit support).
1094 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
1095 New function implemented.
1097 2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
1098 (diff107_cvs, resembling diff78 and diff88_cvs)
1100 * src/atomic_ops/sysdeps/sunc/x86.h: New file.
1101 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
1102 * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
1104 * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
1105 implementation for VC++ v8+ (include <intrin.h> before it unless
1106 WinCE target); use asm-based barrier implementation for Borland,
1107 DigitalMars and Watcom.
1108 * src/atomic_ops.h: Fix comment (for x86_64).
1109 * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
1110 headers for Sun C (if not AO_USE_PTHREAD_DEFS).
1111 * src/atomic_ops.h: Include VC-specific arch headers for Borland,
1112 DigitalMars and Watcom (Win32 target only).
1114 2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
1115 (diff87_cvs, resembling diff29, diff68, diff78 partly)
1117 * doc/README.txt: Remove outdated info about Windows support.
1118 * src/atomic_ops/generalize.h (AO_nop_full): Replace
1119 K&R-style function definition with ANSI C one.
1120 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
1121 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
1123 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
1124 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
1125 * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
1126 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
1127 * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
1128 * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
1129 * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
1130 * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
1131 * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
1132 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
1133 * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
1134 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
1137 2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
1139 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
1140 update modifiers to asms, refine clobbers to "cr0", use
1141 cr0 instead of cr7, add explicit AO_fetch_and_add,
1142 add UNTESTED 64 bit support.
1144 2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
1146 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
1147 AO_compare_and_swap value differently, add
1148 AO_compare_double_and_swap_double, some indentation fixes.
1149 * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
1150 robust and minimize clobbers, Add AO_compare_double_and_swap_double.
1152 2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
1154 * INSTALL: Add some platform-specific documentation.
1155 * src/Makefile.msft: Fix copyright notice.
1157 2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
1159 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
1160 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
1161 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
1162 * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
1163 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
1164 * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
1165 * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
1166 * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
1167 * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
1168 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
1169 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
1170 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
1171 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
1172 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
1173 * src/atomic_ops.c: Fix comments.
1174 * src/atomic_ops.h: Fix comments.
1175 * src/atomic_ops_stack.c: Fix comments.
1176 * src/atomic_ops_stack.h: Fix comments.
1178 2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
1180 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
1183 2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
1185 * config.guess, config.sub, configure: Regenerate/replace.
1186 Use autoconf 2.61, automake 1.9.6.
1188 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
1190 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
1193 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
1195 * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
1197 2008-07-24 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
1199 * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
1200 Add parentheses around addr arg for various functions.
1202 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
1204 * src/atomic_ops/sysdeps/gcc/powerpc.h:
1205 Add const to first parameter of load calls (forgot one).
1207 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
1209 * doc/README.txt, src/atomic_ops/generalize.h,
1210 src/atomic_ops/generalize-small.template,
1211 src/atomic_ops/generalize-small.h,
1212 src/atomic_ops/sysdeps/acquire_release_volatile.h,
1213 src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
1214 src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
1215 src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
1216 src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
1217 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
1218 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
1219 src/atomic_ops/sysdeps/ao_t_is_int.h,
1220 src/atomic_ops/sysdeps/atomic_load_store.h,
1221 src/atomic_ops/sysdeps/char_atomic_load_store.h,
1222 src/atomic_ops/sysdeps/int_atomic_load_store.h,
1223 src/atomic_ops/sysdeps/short_atomic_load_store.h,
1224 src/atomic_ops/sysdeps/generic_pthread.h,
1225 src/atomic_ops/sysdeps/read_ordered.h,
1226 src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
1227 src/atomic_ops/sysdeps/gcc/arm.h,
1228 src/atomic_ops/sysdeps/icc/ia64.h,
1229 src/atomic_ops/sysdeps/ibmc/powerpc.h:
1230 Add const to first parameter of load calls.
1232 2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
1234 * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
1235 AO_or_full, and let it be autogenerated instead.
1237 2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
1239 * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
1240 fixing a merge accident.
1242 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
1245 * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
1248 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
1251 * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
1252 src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
1253 * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
1254 on char, align AO_t. Add cas, or.
1255 * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
1256 * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
1257 * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
1258 tests/Makefile.in: Regenerate.
1260 2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
1261 (Really Ian Wienand & Debian maintainers)
1263 * src/atomic_ops/sysdeps/gcc/x86.h
1264 (AO_compare_double_and_swap_double_full): Correctly account for
1267 2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
1269 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
1270 double_ptr_storage default to long long; define everywhere.
1272 2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
1274 * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
1275 compare_double_and_swap_double.
1277 2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
1279 * src/atomic_ops/generalize.h: Add test_and_set generalizations,
1280 Add AO_double_compare_and_swap generalizations.
1281 * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
1282 * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
1283 * src/atomic_ops/sysdeps/gcc/x86.h,
1284 src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
1285 compare_double_and_swap_double, commented out for msftc.
1286 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add
1287 double_ptr_storage field.
1289 2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
1290 (Merge from separate atomic_ops tree)
1292 * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
1293 double-width cas, and fix its implementation.
1294 * doc/README.txt: Clarify use of _full. Add more warnings about
1297 2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
1299 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
1300 %X1 modifier to support indexed addressing.
1302 2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
1304 * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
1307 2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
1309 * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
1312 2007-06-26 Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
1314 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
1317 2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
1319 * src/atomic_ops.h: include stddef.h
1321 2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
1323 * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
1324 * src/atomic_ops.h: Add test for msftc/x86_64.h.
1325 * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
1326 * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
1327 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1328 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
1329 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
1330 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
1331 Replace unsigned long cast with size_t.
1333 2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
1335 * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
1336 Add cast for return.
1338 2007-05-14 Hans Boehm <Hans.Boehm@hp.com>
1340 * doc/README.txt: Update to reflect C++0x effort.
1342 2007-05-07 Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
1344 * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
1346 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
1349 2006-11-09 Earl Chew (Agilent)
1351 * msftc/x86.h: Follow Microsoft documentation and include
1356 2006-07-11 Hans Boehm <Hans.Boehm@hp.com>
1358 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
1360 2006-03-28 Earl Chew (Agilent)
1362 * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
1363 * src/atomic_ops/sysdeps/msftc/x86.h:
1364 Use new intrinsics available in MSVC 2003 and MSVC 2005.
1365 Use inline assembler to generate mfence and byte sized xchg
1366 Use correct prototype for InterlockedCompareExchange.
1367 * src/atomic_ops.h: Add test for __PPC__ .
1368 * tests/run_parallel.inc: Add simple VxWorks support.
1369 * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
1370 to silence compiler warnings.
1372 2006-11-13 Hans Boehm <Hans.Boehm@hp.com>
1374 * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
1375 * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
1377 2005-11-04 Hans Boehm <Hans.Boehm@hp.com>
1379 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1380 all_acquire_release_volatile.h, instead of just the pointer-sized
1382 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1383 all_acquire_release_volatile.h and all_atomic_load_store.h,
1384 instead of just the pointer-sized versions.
1388 2005-09-27 Hans Boehm <Hans.Boehm@hp.com>
1390 * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
1391 * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
1392 ordered_except_wr.h.
1393 * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
1394 instead of duplicating it.
1395 * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
1397 2005-09-16 Hans Boehm <Hans.Boehm@hp.com>
1399 * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
1400 definition with one that might actually work. (Thanks to Kazu
1401 Hirata and Paul Brook.)
1403 2005-08-01 Hans Boehm <Hans.Boehm@hp.com>
1405 * src/atomic_ops/Makefile.am: Change function naming from "byte" to
1410 2005-03-21 Hans Boehm <Hans.Boehm@hp.com>
1411 Fix various acquire_release_volatile.h files to reflect the fact
1412 that both icc and gcc seem to reorder ordinary memory accesses around
1413 volatile accesses early in the compilation. Modify the acquire
1414 release test to catch this problem (with high probability, and only on
1417 2005-03 Hans Boehm <Hans.Boehm@hp.com>
1418 Fixes for recently introduced bugs. Update x86 and x86-64 assembly
1419 syntax to deal with complaints by some recent gcc versions.
1421 2005-02 Hans Boehm <Hans.Boehm@hp.com>
1422 Added libatomic_ops_gpl library with support for mostly
1423 lock-free stack and malloc().
1425 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
1426 Hans Boehm <Hans.Boehm@hp.com>
1427 Use autoconf, automake, starting with code from Debian package.
1430 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1431 * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
1432 Change most platforms to use byte-wide test-and-set locations.
1434 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1435 * ao_t_is_int.h: Add to trivially support int-wide operations
1436 on platforms with int-sized pointers.
1438 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1439 * gcc/powerpc.h: First serious attempt to support PowerPC (with
1440 help from Maged Michael and others).
1442 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1443 * sunc/sparc.[hS]: Added minimal support for the Sun SPARC compiler.
1444 * atomic_ops_sysdeps.S: Add support for platforms that require
1445 out-of-line assembly code.
1447 2004-10 Hans Boehm <Hans.Boehm@hp.com>
1448 More work on char, short, int sized data. Add both
1449 compare_double_and_swap_double and compare_and_swap_double.
1450 Typically each platform will provide at most one of these.
1452 2004-07-02 Ranko Zivojnovic
1453 Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
1455 2004-06 Hans Boehm <Hans.Boehm@hp.com>
1456 Start to add atomic_ops primitives for different sized data.
1458 2003-12-18 Hans Boehm <Hans.Boehm@hp.com>
1460 * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
1461 Fix support for ecc on IA64. Remove compiler_barrier workaround
1462 for gcc 3.4 and later.
1464 2003-12-17 Hans Boehm <Hans.Boehm@hp.com>
1466 * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
1467 atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
1468 Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
1469 for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
1470 compiler on PA_RISC and IA64.
1472 2003-12-09 Hans Boehm <Hans.Boehm@hp.com>
1474 * many: Install under "atomic_ops" instead of "ao".
1475 Change atomic_ops include file structure. Auxiliary include
1476 files are all under include/atomic_ops.
1477 Fix (hopefully) "make dist" in atomic_ops distribution.
1478 Renamed various types to end in _t, though the old versions
1479 are still defined for backward compatibility.
1481 2003-12-08 Carlos O'Donell <carlos@baldric.uwo.ca>
1483 * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
1484 AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
1485 helper macros. AO_test_and_set_full uses helper macros.
1488 Started sometime after version 0.4 release. Currently the format is
1489 informal. Eventually should become more GNU-like.