1 2017-03-15 Ivan Maidanski <ivmai@mail.ru>
3 * src/atomic_ops_malloc.c [SIZE_MAX] (AO_SIZE_MAX): Cast
4 SIZE_MAX to size_t explicitly (to workaround incorrect definition
5 of SIZE_MAX - e.g. it is defined as ~0ULL in musl-tools which is not
6 correct for a 32-bit target).
8 2017-02-22 Ivan Maidanski <ivmai@mail.ru>
10 * src/atomic_ops.h [__cris__ || CRIS] (AO_CAN_EMUL_CAS): Define.
11 * src/atomic_ops/sysdeps/gcc/cris.h: Add TODO to implement CAS.
13 2017-02-20 Ivan Maidanski <ivmai@mail.ru>
15 * src/atomic_ops/sysdeps/gcc/arm.h
16 (AO_compare_and_swap): Fix typo ("succeeded") and add "then" in comment.
17 * src/atomic_ops/sysdeps/gcc/arm.h
18 (AO_compare_double_and_swap_double): Likewise.
20 2017-01-31 Ivan Maidanski <ivmai@mail.ru>
22 * src/atomic_ops/sysdeps/standard_ao_double_t.h [__i386__ && __GNUC__]
23 (double_ptr_storage): Add aligned(8) attribute (so that AO_double_t
24 global/static variables to have proper (double-word) alignment).
26 2017-01-26 Ivan Maidanski <ivmai@mail.ru>
28 * src/atomic_ops.h (AO_TS_INITIALIZER): Change type from AO_t to
29 AO_TS_t; add outermost parentheses.
31 2017-01-24 Ivan Maidanski <ivmai@mail.ru>
33 * doc/README.txt (AO_double_t): Add note about required alignment.
34 * src/atomic_ops/sysdeps/standard_ao_double_t.h (AO_double_t): Add
35 comment about alignment.
36 * src/atomic_ops_stack.h (AO_stack_t): Likewise.
37 * tests/test_atomic.template (test_atomicXX): Define w
38 local variable as static (as otherwise, e.g., it could have 4-byte
39 alignment on x86); add comment.
40 * tests/test_atomic_include.h: Regenerate.
42 2017-01-16 Ivan Maidanski <ivmai@mail.ru>
44 * src/atomic_ops/sysdeps/msftc/arm.h: Remove FIXME about memory barrier
45 of _InterlockedOps (they have the correct one according to the MSDN).
47 2012-10-08 Ivan Maidanski <ivmai@mail.ru>
49 * src/Makefile.msft (libatomic_ops_gpl.lib): Do not pass
50 "/MACHINE:i386" option to "lib" tool (to select the proper target
51 architecture automatically).
53 2011-08-09 Ivan Maidanski <ivmai@mail.ru>
55 * src/Makefile.msft: Replace -o option with /Fo.
56 * src/Makefile.msft (clean): New target.
58 2011-08-09 Ivan Maidanski <ivmai@mail.ru>
60 * src/Makefile.msft (all): Build "libatomic_ops_gpl.lib" instead of
62 * src/Makefile.msft (test_malloc): Wrap long lines.
64 2016-11-02 Ivan Maidanski <ivmai@mail.ru>
66 * doc/README.txt: Document AO_REQUIRE_CAS better (replace
67 "compare-and-swap" with "AO_compare_and_swap*").
69 2016-08-24 Ivan Maidanski <ivmai@mail.ru>
71 * tests/test_atomic.template (test_atomicXX): Replace assert()
72 calls with TA_assert().
73 * test_atomic_include.h: Regenerate.
75 2016-08-22 Ivan Maidanski <ivmai@mail.ru>
77 * src/atomic_ops_malloc.c: Include limits.h (unless SIZE_MAX already
79 * src/atomic_ops_malloc.c (AO_SIZE_MAX): New macro.
80 * src/atomic_ops_malloc.c (SIZET_SAT_ADD): New macro.
81 * src/atomic_ops_malloc.c (AO_malloc_large): Use SIZET_SAT_ADD to
82 avoid integer overflow when computing the memory size to map (i.e.,
83 malloc should handle arguments close to SIZE_MAX correctly).
85 2016-10-05 Ivan Maidanski <ivmai@mail.ru>
87 * src/atomic_ops.h [_HPUX_SOURCE && !__ia64] (AO_barrier_dummy):
88 Fix typo ("do not") in comment.
89 * src/atomic_ops/generalize.h [AO_HAVE_nop_acquire]: Fix typo
90 ("do not") in #error message.
91 * src/atomic_ops/generalize.h [AO_HAVE_nop_release]: Likewise.
92 * src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM < 6]:
94 * src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM < 6]: Add
96 * src/atomic_ops_stack.c [AO_HAVE_compare_and_swap_double]: Fix typo
97 ("does not") in #error message.
101 2016-05-23 Ivan Maidanski <ivmai@mail.ru>
103 * README: Bump version to 7.2g (rev. G).
105 2016-05-23 Hans Boehm <boehm@acm.org>
107 * README: Add top-level disclaimer that it is better to use
108 C11 or C++14 atomic primitives instead of this library for the
109 newly-developed code.
111 2014-02-21 Ivan Maidanski <ivmai@mail.ru>
113 * README: Update links to BDWGC/libatomic_ops site.
114 * doc/README_stack.txt: Likewise.
116 2016-03-24 Ivan Maidanski <ivmai@mail.ru>
118 * doc/README.txt (Future directions): Remove (obsolete information
119 about C++0x standard future).
121 2016-03-22 Ivan Maidanski <ivmai@mail.ru>
123 * Makefile.in: Regenerate properly (remove ltmain.sh from DIST_COMMON).
125 2016-03-22 Ivan Maidanski <ivmai@mail.ru>
127 * Makefile.in: Regenerate (by autoreconf -vif using autoconf-2.69,
128 automake-1.14.1 and libtool-2.4.2).
129 * config.guess: Likewise.
130 * config.sub: Likewise.
132 2015-01-08 James Cowgill <james410@cowgill.org.uk>
134 * src/atomic_ops/sysdeps/gcc/mips.h: Remove inclusion of
135 acquire_release_volatile.h (the ISA manuals do not say anything about
136 volatile loads / stores having acquire / release semantics).
140 2014-05-02 Ivan Maidanski <ivmai@mail.ru>
142 * README: Bump version to 7.2f (rev. F).
144 2014-05-02 Ivan Maidanski <ivmai@mail.ru>
146 * configure: Regenerate (by autoreconf -vif using autoconf-2.69,
147 automake-1.14.1 and libtool-2.4.2.418).
149 * Makefile.in: Likewise.
150 * aclocal.m4: Likewise.
151 * config.guess: Likewise.
152 * config.sub: Likewise.
153 * doc/Makefile.in: Likewise.
155 * src/Makefile.in: Likewise.
156 * src/atomic_ops/Makefile.in: Likewise.
157 * src/atomic_ops/sysdeps/Makefile.in: Likewise.
158 * src/config.h.in: Likewise.
159 * test-driver: Likewise.
160 * tests/Makefile.in: Likewise.
162 2014-03-28 Jan-Erik Rediger <badboy@archlinux.us>
164 * doc/README.txt: Remove redundant "an" article (fix typo).
168 2013-11-10 Ivan Maidanski <ivmai@mail.ru>
170 * README: Bump version to 7.2e (rev. E).
172 2013-08-31 Ivan Maidanski <ivmai@mail.ru>
174 * configure: Regenerate (by autoreconf -vif using autoconf-2.69,
175 automake-1.13.4 and libtool-2.4.2).
177 * Makefile.in: Likewise.
178 * aclocal.m4: Likewise.
180 * config.guess: Likewise.
181 * config.sub: Likewise.
183 * doc/Makefile.in: Likewise.
184 * install-sh: Likewise.
186 * mkinstalldirs: Likewise.
187 * src/Makefile.in: Likewise.
188 * src/atomic_ops/Makefile.in: Likewise.
189 * src/atomic_ops/sysdeps/Makefile.in: Likewise.
190 * tests/Makefile.in: Likewise.
191 * test-driver: New generated file.
193 2013-08-18 Ivan Maidanski <ivmai@mail.ru>
195 * aclocal.m4: Regenerate (by autoreconf -vif).
197 2013-08-17 Ivan Maidanski <ivmai@mail.ru>
199 * src/atomic_ops/sysdeps/gcc/arm.h
200 (AO_compare_double_and_swap_double): Do not define for
201 pre-Clang3.3 (since the latter does not allocate register pairs for
202 LDREXD/STREXD instructions properly); add comment.
204 2013-08-17 Ivan Maidanski <ivmai@mail.ru>
206 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_double_and_swap_double):
207 Swap assembly code operands ("new_val" and "addr") to prevent
208 Clang3.3 warning about operand truncation.
210 2013-08-17 Ivan Maidanski <ivmai@mail.ru>
212 * src/atomic_ops/sysdeps/gcc/arm.h
213 (AO_compare_double_and_swap_double): Specify that LDREXD and STREXD use
214 2 adjacent registers (thus preventing Clang3.3 from register allocation
215 failures leading to "registers may not be the same" or
216 "even register required" GAS errors).
218 2013-07-30 Ivan Maidanski <ivmai@mail.ru>
220 * src/atomic_ops/generalize.h: Fix a typo in comment
223 2013-04-03 Manuel Serrano <Manuel.Serrano@inria.fr>
225 * configure.ac (AM_CONFIG_HEADER): Replace obsolete macro with with
226 AC_CONFIG_HEADERS one.
228 2013-03-29 Ivan Maidanski <ivmai@mail.ru>
230 * src/atomic_ops/generalize-small.template (AO_XSIZE_fetch_and_add):
231 Do not use AO_EXPECT_FALSE (since defined only in v7.3+).
232 * src/atomic_ops/generalize-small.h: Regenerate.
234 2013-03-29 Ivan Maidanski <ivmai@mail.ru>
236 * src/atomic_ops/sysdeps/sunc/x86.h (AO_fetch_and_add_full,
237 AO_char_fetch_and_add_full, AO_short_fetch_and_add_full, AO_or_full,
238 AO_test_and_set_full,
239 AO_compare_and_swap_full): Use "+m" asm constraint for *addr instead
240 of "=m" (because the value pointed by addr is read and written by the
243 2013-03-13 Ivan Maidanski <ivmai@mail.ru>
245 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_compare_and_swap): Use "+m"
246 asm constraint for *addr instead of "=m" (because the value pointed by
247 addr is read and written by the code).
249 2013-03-12 Ivan Maidanski <ivmai@mail.ru>
251 * src/atomic_ops/sysdeps/gcc/mips.h (AO_compare_and_swap): Use "+m"
252 asm constraint for *addr instead of "+R" (the letter is unsupported
253 by clang3.1 resulting in "invalid output constraint in asm" error).
255 2013-02-14 Ivan Maidanski <ivmai@mail.ru>
257 * src/atomic_ops/sysdeps/gcc/arm.h: Do not include read_ordered.h
258 (because load_acquire should contain a DMB instruction in a multi-core
259 case, new load_acquire/read primitives implementation is generalized
260 using nop_full/read which either contain a DMB instruction, or is just
261 a compiler barrier for uniprocessor).
262 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Likewise.
263 * src/atomic_ops/sysdeps/msftc/arm.h: Likewise.
265 2013-01-15 Ivan Maidanski <ivmai@mail.ru>
267 * doc/README.txt (_acquire_read): Add information about memory
268 barrier (similar as in atomic_ops.h).
269 * doc/README.txt (_release_read): Remove information about
270 non-existing barrier.
272 2013-01-14 Ivan Maidanski <ivmai@mail.ru>
274 * src/atomic_ops/sysdeps/ao_t_is_int.h: Fix a typo in comment.
276 2013-01-13 Ivan Maidanski <ivmai@mail.ru>
278 * src/atomic_ops/sysdeps/ao_t_is_int.h
279 (AO_int_load_acquire, AO_int_fetch_and_add_full,
280 AO_int_fetch_and_add1_acquire, AO_int_fetch_and_add1_release,
281 AO_int_fetch_and_sub1_acquire, AO_int_fetch_and_sub1_release): Cast
282 result to unsigned int instead of signed int.
284 2013-01-13 Ivan Maidanski <ivmai@mail.ru>
286 * src/atomic_ops/sysdeps/gcc/s390.h: Move include of
287 ordered_except_wr.h down to be after all_aligned_atomic_load_store.h
288 inclusion (since the latter defines AO_X_load/store primitives used by
291 2013-01-13 Ivan Maidanski <ivmai@mail.ru>
293 * src/atomic_ops/sysdeps/msftc/arm.h: Fix a typo in comment (about
296 2013-01-07 Ivan Maidanski <ivmai@mail.ru>
298 * src/atomic_ops/sysdeps/read_ordered.h (AO_char_load_read,
299 AO_short_load_read, AO_int_load_read): Change return type (and the
300 type of "result" local variable) from AO_t to the type matching the
301 name of the function (i.e., unsigned char/short/int, respectively).
303 2013-01-06 Ivan Maidanski <ivmai@mail.ru>
305 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Insert
306 AO_compiler_barrier for AO_UNIPROCESSOR case.
307 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Likewise.
308 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full): Likewise.
309 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full): Refine comment.
311 2013-01-05 Ivan Maidanski <ivmai@mail.ru>
313 * src/atomic_ops/Makefile.in: Regenerate (by autoreconf -vif).
315 2013-01-04 Ivan Maidanski <ivmai@mail.ru>
317 * src/atomic_ops/Makefile.am (BUILT_SOURCES): Define to force
318 regeneration of generalize-small.h (if the corresponding
319 source template is changed) before compilation of .c files (that use
322 2013-01-02 Ivan Maidanski <ivmai@mail.ru>
324 * src/atomic_ops/generalize-small.template (AO_XSIZE_fetch_and_add):
325 Add missed definition based on CAS.
326 * src/atomic_ops/generalize-small.h: Regenerate.
328 2013-01-02 Ivan Maidanski <ivmai@mail.ru>
330 * src/atomic_ops/generalize-small.template (AO_XSIZE_load): Move
331 definition (which is based on AO_XSIZE_load_acquire) down to be after
332 AO_XSIZE_load_acquire definition.
333 * src/atomic_ops/generalize-small.template (AO_XSIZE_store): Move
334 definition (which is based on AO_XSIZE_store_release) down to be after
335 AO_XSIZE_store_release definition.
336 * src/atomic_ops/generalize-small.h : Regenerate.
338 2012-10-09 Ivan Maidanski <ivmai@mail.ru>
340 * tests/test_stack.c (run_one_test): Change type of "index" local
341 variable from long to int to match printf format specifier (when
342 VERBOSE defined); cast from "arg" pointer to integer via size_t (to
343 avoid 64-bit compiler warning).
345 2012-10-08 Ivan Maidanski <ivmai@mail.ru>
347 * src/atomic_ops/sysdeps/gcc/x86.h (AO_double_compare_and_swap_full):
348 New function (only if __x86_64__) implemented using GCC built-in
349 __sync CAS primitive available for x32.
350 * src/atomic_ops/sysdeps/gcc/x86.h
351 (AO_HAVE_double_compare_and_swap_full): New macro (for x32 only).
352 * src/atomic_ops/sysdeps/gcc/x86.h
353 (AO_compare_double_and_swap_double_full): Implement using
354 double_compare_and_swap_full instead of cmpxchg8b for x32 (since
355 x86_64 has cmpxchg and cmpxchg16b but not cmpxchg8b).
357 2012-10-05 Ivan Maidanski <ivmai@mail.ru>
359 * src/atomic_ops.h: Fix typos in comments (update generalize.h
362 2012-10-03 Ivan Maidanski <ivmai@mail.ru>
364 * src/atomic_ops.c (AO_pause): Fix millis value (passed to Win32
365 Sleep) for the case of 'n' argument in range between 12 and 21,
366 inclusive if AO_USE_WIN32_PTHREADS (sleep for 1 ms in this case).
367 * src/atomic_ops_stack.c (AO_pause): Evaluate 'msecs' value using the
368 same algorithm as in atomic_ops.c (Win32 only).
370 2012-10-03 Ivan Maidanski <ivmai@mail.ru>
372 * src/atomic_ops_stack.c (dummy): Define as static (to make symbol
373 without AO_ prefix visible only within this file); initialize to 1
374 (same as in atomic_ops.c, so that AO_spin would never really alter
377 2012-10-02 Ivan Maidanski <ivmai@mail.ru>
379 * src/atomic_ops.h: Fix 'load' primitive name in comment (replace
380 AO_load_release_read with AO_load_acquire_read).
382 2012-10-02 Ivan Maidanski <ivmai@mail.ru>
384 * src/atomic_ops/sysdeps/emul_cas.h
385 (AO_compare_double_and_swap_double_full): Test (define if)
386 AO_HAVE_compare_double_and_swap_double_full macro instead of
387 AO_HAVE_compare_double_and_swap_double.
389 2012-10-01 Ivan Maidanski <ivmai@mail.ru>
391 * src/atomic_ops/sysdeps/standard_ao_double_t.h (double_ptr_storage):
392 Define as "unsigned long long" instead of __m128 for gcc/x32 (i.e.,
393 ILP32 on x86_64); update and reformat comment.
395 2012-09-19 Ivan Maidanski <ivmai@mail.ru>
397 * configure: Regenerate (by autoreconf -vif using autoconf-2.68,
398 automake-1.11.3 and libtool-2.4.2).
400 * Makefile.in: Likewise.
401 * aclocal.m4: Likewise.
403 * config.guess: Likewise.
404 * config.sub: Likewise.
406 * doc/Makefile.in: Likewise.
407 * install-sh: Likewise.
409 * src/Makefile.in: Likewise.
410 * src/atomic_ops/Makefile.in: Likewise.
411 * src/atomic_ops/sysdeps/Makefile.in: Likewise.
412 * tests/Makefile.in: Likewise.
414 2012-09-18 Ivan Maidanski <ivmai@mail.ru>
416 * src/atomic_ops.h: Include gcc/x86.h instead of gcc/x86_64.h if
417 gcc/x32 (i.e., GCC (or Intel compiler), __x86_64__ is defined, and
418 __ILP32__ is defined) to have AO_compare_double_and_swap_double_full
419 defined properly (based on cmpxchg8b); explicitly define
420 AO_USE_PENTIUM4_INSTRS for gcc/x32.
421 * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove ILP32-specific code
422 (AO_T_IS_INT definition).
424 2012-09-18 Ivan Maidanski <ivmai@mail.ru>
426 * src/atomic_ops/sysdeps/sunc/x86_64.h
427 (AO_compare_double_and_swap_double_full): Fix inline assembly
428 arguments commenting out "m"(*addr) one (similar to that in
429 sunc/x86.h) if AO_CMPXCHG16B_AVAILABLE defined.
431 2012-09-18 Ivan Maidanski <ivmai@mail.ru>
433 * src/atomic_ops/sysdeps/gcc/x86_64.h
434 (AO_compare_double_and_swap_double_full): Fix a typo in comment.
435 * src/atomic_ops/sysdeps/sunc/x86_64.h
436 (AO_compare_double_and_swap_double_full): Likewise.
438 2012-09-18 Ivan Maidanski <ivmai@mail.ru>
440 * tests/test_atomic.c (acqrel_thr): Call abort() after fprintf(stderr).
441 * tests/test_malloc.c (run_one_test): Likewise.
442 * tests/test_stack.c (check_list, main): Likewise.
444 2012-09-05 Ivan Maidanski <ivmai@mail.ru>
446 * src/atomic_ops/sysdeps/gcc/x86.h
447 (AO_compare_double_and_swap_double_full): Re-implement for PIC mode
448 saving EBX to a local variable (instead of pushing it to stack) and
449 saving memory operand address to a register (edi which is manually
450 preserved), so that the whole code could also work even if EBX points
451 to memory operand (e.g., in Clang); test __PIC__ using ifdef (instead
452 of "if"); update comments; reformat code.
456 2012-08-09 Ivan Maidanski <ivmai@mail.ru>
458 * README: Change version to 7.2d (rev. D).
460 2012-08-01 Ivan Maidanski <ivmai@mail.ru>
462 * src/atomic_ops.h (AO_compiler_barrier): Add parentheses and cast to
465 2012-07-12 Ivan Maidanski <ivmai@mail.ru>
467 * config.guess: Regenerate (by autoreconf -vif using autoconf-2.68,
468 automake-1.11.1 and libtool-2.4).
469 * config.sub: Likewise.
471 2012-07-04 Ivan Maidanski <ivmai@mail.ru>
473 * src/atomic_ops/sysdeps/gcc/x86.h
474 (AO_compare_double_and_swap_double_full): Use EDI register for
475 "new_val1" argument in PIC mode only for GCC 4.3+ to workaround
476 a problem with older compiler versions (e.g., GCC 4.2.1 [FreeBSD])
477 that do not recognize 'D' as a valid register specification; update
480 2012-07-01 Ivan Maidanski <ivmai@mail.ru>
482 * src/atomic_ops/generalize-small.template
483 (AO_XSIZE_fetch_and_add_full,
484 AO_XSIZE_fetch_and_add_acquire, AO_XSIZE_fetch_and_add_release):
485 Fix type of function result by adding
486 'unsigned' to XCTYPE.
487 * src/atomic_ops/generalize-small.h: Regenerate.
491 2012-05-11 Ivan Maidanski <ivmai@mail.ru>
493 * configure.ac, README: Bump version to 7.2 (final).
494 * configure: Regenerate.
496 2012-05-01 H.J. Lu <hjl.tools@gmail.com>
498 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_fetch_and_add_full,
499 AO_and_full, AO_or_full, AO_xor_full, AO_compare_and_swap_full):
500 Remove 'q' suffix in asm instruction.
502 2012-04-16 H.J. Lu <hjl.tools@gmail.com>
504 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_T_IS_INT): Defined
507 2012-03-28 Ivan Maidanski <ivmai@mail.ru>
509 * configure.ac (PICFLAG): Adjust AC_MSG_CHECKING message; report
510 "none" result if no -fPIC is needed (for Cygwin/MinGW); determine
511 whether GCC -fPIC option causes __PIC__ macro definition; pass
512 -D __PIC__ to PICFLAG (instead of CFLAGS) only if not defined
513 automatically in case -fPIC specified; update comment.
515 2012-03-26 Ivan Maidanski <ivmai@mail.ru>
517 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Do not use __m128
518 if GCC pre-v4 (at least, xmmintrin.h is missing in gcc-3.4.3-x86_64
519 included in Solaris 10 distribution).
521 2012-03-26 Ivan Maidanski <ivmai@mail.ru>
523 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Fix a typo in
526 2012-03-19 Ivan Maidanski <ivmai@mail.ru>
528 * configure: Regenerate.
529 * Makefile.in: Likewise.
531 2011-08-14 Petter Urkedal <paurkedal@gmail.com>
533 * atomic_ops.pc.in -> pkgconfig/atomic_ops.pc.in: Moved.
534 * pkgconfig/atomic_ops-uninstalled.pc.in: Added developer version.
535 * configure.ac, Makefile.am: Update accordingly.
537 2011-08-04 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
539 * atomic_ops.pc.in: new file.
540 * Makefile.am (pkgconfigdir, pkgconfig_DATA): new items.
541 * configure.ac (AC_CONFIG_FILES): add atomic_ops.pc.
542 * configure, Makefile.in: Regenerate.
544 2012-03-07 Ivan Maidanski <ivmai@mail.ru>
546 * src/atomic_ops/sysdeps/gcc/x86.h
547 (AO_compare_double_and_swap_double_full): Use EDI register for
548 "new_val1" argument instead of a memory operand and use XCHG assembler
549 instruction instead of push/pop in case of PIC mode (to workaround
550 a bug in GCC 4.6.1); update the comment.
552 2012-03-07 Ivan Maidanski <ivmai@mail.ru>
554 * src/atomic_ops_stack.c (AO_stack_push_release): Make "cptr" local
555 variable volatile to workaround a bug in clang-1.1/x86 compiler; add
558 2012-03-07 Ivan Maidanski <ivmai@mail.ru>
560 * src/atomic_ops/sysdeps/gcc/x86.h
561 (AO_compare_double_and_swap_double_full): Fix argument name in the
563 * src/atomic_ops/sysdeps/sunc/x86.h
564 (AO_compare_double_and_swap_double_full): Likewise.
566 2012-03-04 Ivan Maidanski <ivmai@mail.ru>
568 * src/atomic_ops_malloc.h (AO_malloc_enable_mmap): Fix a typo in the
571 2012-01-19 Ivan Maidanski <ivmai@mail.ru>
573 * tests/test_atomic.c (main): Put "void" keyword into the arguments
574 specification of the function prototype.
575 * tests/test_stack.c (main): Likewise.
577 2011-12-16 Ivan Maidanski <ivmai@mail.ru>
579 * src/atomic_ops/sysdeps/gcc/arm.h (__ARM_ARCH_7__, __ARM_ARCH_7A__):
580 Recognize to override __ARM_ARCH_5xx__ macros (since Android NDK GCC
581 defines both for armv7); update comment.
583 2011-11-29 Ivan Maidanski <ivmai@mail.ru>
585 * src/atomic_ops/sysdeps/gcc/hexagon.h: Include generalize.h file
586 before ao_t_is_int.h one.
587 * src/atomic_ops/sysdeps/gcc/ia64.h: Likewise.
588 * src/atomic_ops/sysdeps/hpc/ia64.h: Likewise.
590 2011-11-03 Ivan Maidanski <ivmai@mail.ru>
592 * src/atomic_ops/generalize-small.template
593 (AO_XSIZE_fetch_and_add_full, AO_XSIZE_fetch_and_add_acquire,
594 AO_XSIZE_fetch_and_add_release): Change return type from AO_t to
596 * src/atomic_ops/generalize-small.h: Regenerate.
598 2011-10-24 Ivan Maidanski <ivmai@mail.ru>
600 * src/atomic_ops/sysdeps/gcc/mips.h (AO_compare_and_swap_full):
601 Change "result" local variable type from AO_t to int.
602 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_compare_and_swap_full):
605 2011-10-24 Ivan Maidanski <ivmai@mail.ru>
607 * tests/test_atomic_include.h: Regenerate.
609 2011-10-24 Ivan Maidanski <ivmai@mail.ru>
611 * tests/test_atomic_include.template (test_atomicXX): Add action for
612 the missing AO_compare_and_swap primitive.
614 2011-10-21 Ivan Maidanski <ivmai@mail.ru>
616 * src/atomic_ops.c (init_lock): Define only unless AO_USE_NO_SIGNALS.
618 2011-10-21 Ivan Maidanski <ivmai@mail.ru>
620 * doc/README.txt: Fix a typo.
622 2011-10-21 Ivan Maidanski <ivmai@mail.ru>
624 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_compare_and_swap): Cast
625 returned value to int.
627 2011-10-17 Ivan Maidanski <ivmai@mail.ru>
629 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
631 2011-10-17 Ivan Maidanski <ivmai@mail.ru> (really Thorsten Glaser)
633 * src/atomic_ops/sysdeps/gcc/m68k.h (AO_test_and_set_full): Cast the
636 2011-10-15 Ivan Maidanski <ivmai@mail.ru>
638 * src/atomic_ops/sysdeps/gcc/s390.h (AO_compare_and_swap_full):
639 Change return from AO_t to int.
640 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_compare_and_swap_acquire,
641 AO_compare_and_swap_release, AO_compare_and_swap_full): Likewise.
643 2011-10-11 Ivan Maidanski <ivmai@mail.ru> (really Linas Vepstas)
645 * src/atomic_ops/sysdeps/Makefile.am (nobase_private_HEADERS): Add
647 * src/atomic_ops.h: Include hexagon.h file.
648 * src/atomic_ops/sysdeps/gcc/hexagon.h: New file.
650 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
653 (AO_non_posix_implementation_is_entirely_in_headers): Make external.
655 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
657 * configure: Regenerate.
658 * tests/Makefile.in: Ditto.
659 * tests/test_atomic_include.h: Ditto.
661 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
663 * configure.ac (PICFLAG, THREADDLLIBS): Define as empty for MinGW.
664 * configure.ac (have_pthreads): New definition (set to true unless
666 * configure.ac (HAVE_PTHREAD_H): New AM conditional (based on
667 have_pthreads value).
668 * tests/Makefile.am (test_atomic_pthreads_SOURCES,
669 test_atomic_pthreads_CPPFLAGS, test_atomic_pthreads_LDADD): Define
670 only if HAVE_PTHREAD_H.
671 * tests/Makefile.am (TESTS): Don't include test_atomic_pthreads unless
673 * tests/Makefile.am (check_PROGRAMS): Define to TESTS value.
675 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
677 * configure.ac (PICFLAG): Set to -fPIC if GCC but not Gygwin.
679 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
681 * tests/test_malloc.c (LIST_LENGTH, LARGE_OBJ_SIZE): Define to
682 a smaller value unless HAVE_MMAP.
684 2011-09-21 Ivan Maidanski <ivmai@mail.ru>
686 * tests/test_malloc.c (cons, run_one_test): Call exit with a non-zero
687 code (instead of abort) if out of memory.
688 * tests/test_stack.c (add_elements): Likewise.
689 * tests/test_stack.c (main): Use a distinct exit code if a thread
692 2011-09-15 Ivan Maidanski <ivmai@mail.ru>
694 * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo (replace AO_FORCE_CAS
695 with AO_REQUIRE_CAS in a comment).
697 2011-09-08 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
699 * src/Makefile.am, tests/Makefile.am: Set compiler include paths
700 to $(top_builddir)/src and $(top_srcdir)/src.
701 * src/Makefile.in: Regenerate.
702 * tests/Makefile.in: Ditto.
704 2011-07-14 Ivan Maidanski <ivmai@mail.ru>
706 * tests/list_atomic.template (list_atomicXX): Remove "addr" local
707 variable (use "&val" instead); initialize "newval" and "oldval"
708 local variables; rename "tsaddr" local variable to "ts" one.
709 * tests/list_atomic.template (list_atomicXX): Fix
710 AO_test_and_setXX call (pass address instead of value).
711 * tests/list_atomic.template: Expand all tabs to spaces; remove
712 trailing spaces at EOLn.
713 * tests/run_parallel.inc: Ditto.
714 * tests/test_atomic.c: Ditto.
715 * tests/list_atomic.c: Regenerate.
716 * tests/run_parallel.inc (AO_PTRDIFF_T): New macro.
717 * tests/run_parallel.inc (tramp): Cast between pointer and integer
718 types via casting to AO_PTRDIFF_T.
719 * tests/test_atomic.c (add1sub1_thr, acqrel_thr): Ditto.
720 * tests/run_parallel.inc (run_parallel): Adjust printf format
721 specifiers for DWORD parameters.
722 * tests/test_stack.c: Skip test if no pthreads.
724 2011-06-27 Ivan Maidanski <ivmai@mail.ru> (really Jeremy Huddleston)
726 * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
727 Explicitly cast 0xff to unsigned char (otherwise LLVM v2.7 GAS
728 reports an error); don't recognize AO_XCHGB_RET_WORD.
729 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
732 2011-06-15 Ivan Maidanski <ivmai@mail.ru>
734 * configure.ac, README: Change to version 7.2alpha7.
735 * configure: Regenerate.
739 2011-06-14 Ivan Maidanski <ivmai@mail.ru>
741 * configure.ac, README: Change to version 7.2alpha6.
742 * configure: Regenerate.
744 2011-06-07 Ivan Maidanski <ivmai@mail.ru>
746 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, AO_load): Do not
747 define for pre-ARMv6 directly (revert part of the previous
749 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set,
750 AO_test_and_set_full): Refine the comment.
751 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Define
752 SWP-based implementation at the end of file (if none of
753 AO_test_and_set functions are defined previously).
754 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Remove
755 SWP-based implementation (revert part of the previous commit).
756 * src/atomic_ops/sysdeps/gcc/arm.h (AO_store): Remove redundant
757 definition at the file end (revert part of the previous commit).
759 2011-06-07 Ivan Maidanski <ivmai@mail.ru>
761 * src/atomic_ops/sysdeps/gcc/arm.h: Handle ARMv6M architecture.
762 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Force "swp"
763 instruction usage (instead of ldrex/strex) if AO_FORCE_USE_SWP;
765 * src/atomic_ops/sysdeps/gcc/arm.h
766 (AO_compare_double_and_swap_double): Handle ARMv7EM architecture
768 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set, AO_nop_full,
769 AO_load, AO_store): Define at the end of file (in case not defined
772 2011-06-07 Ivan Maidanski <ivmai@mail.ru>
774 * src/atomic_ops/generalize.h: Reformat code.
775 * src/atomic_ops/generalize.h (AO_test_and_set_acquire): Fix
777 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_test_and_set): Ditto.
778 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Ditto.
779 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Add
780 a comment (about SWP instruction).
782 2011-06-06 Ivan Maidanski <ivmai@mail.ru>
784 * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
785 AO_THUMB_RESTORE_MODE): Use single-digit labels (to workaround
786 a bug in GCC v4.2.1 which reports "garbage following instruction"
788 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Use "IT"
789 instruction only for Thumb-2 mode.
791 2011-06-06 Ivan Maidanski <ivmai@mail.ru>
793 * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
794 AO_THUMB_RESTORE_MODE, AO_THUMB_SWITCH_CLOBBERS): Define as empty
796 * src/atomic_ops/sysdeps/gcc/arm.h (AO_store, AO_test_and_set,
797 AO_fetch_and_add, AO_fetch_and_add1, AO_fetch_and_sub1,
798 AO_compare_and_swap, AO_compare_double_and_swap_double): Remove
799 unnecessary "memory" keyword from the list of clobbered registers
800 (revert part of the previous commit).
801 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Add
802 a comment for "IT" instruction.
803 * src/atomic_ops/sysdeps/gcc/arm.h
804 (AO_compare_double_and_swap_double): Don't define on the
805 architectures where unimplemented; add a comment; replace return
806 (in the loop) statement with break.
808 2011-06-06 Ivan Maidanski <ivmai@mail.ru>
810 * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
811 AO_THUMB_RESTORE_MODE, AO_THUMB_SWITCH_CLOBBERS): Define new
812 macro (to switch temporarily CPU mode to ARM in inline assembler
813 if compiling in the Thumb mode and to restore it back on leave).
814 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, AO_store,
815 AO_test_and_set, AO_fetch_and_add, AO_fetch_and_add1,
816 AO_fetch_and_sub1, AO_compare_and_swap, AO_test_and_set_full):
817 Enable compilation in the Thumb mode (use AO_THUMB_GO_ARM,
818 AO_THUMB_RESTORE_MODE and AO_THUMB_SWITCH_CLOBBERS macros).
819 * src/atomic_ops/sysdeps/gcc/arm.h (AO_store, AO_test_and_set,
820 AO_fetch_and_add, AO_fetch_and_add1, AO_fetch_and_sub1,
821 AO_compare_and_swap, AO_compare_double_and_swap_double): Add
822 "memory" to the list of clobbered registers.
824 2011-06-06 Ivan Maidanski <ivmai@mail.ru>
826 * src/atomic_ops/sysdeps/gcc/arm.h: Reformat code.
827 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
828 AO_test_and_set_full): Add assembler comment containing the
831 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
833 * tests/test_malloc.c (run_one_test): Test AO_malloc() result
834 (if out of memory then print the message and abort).
835 * tests/test_stack.c (add_elements): Ditto.
837 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
839 * src/atomic_ops/generalize.h (AO_HAVE_or_full): Add missing
841 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_HAVE_nop_write):
843 * src/atomic_ops/sysdeps/read_ordered.h (AO_HAVE_nop_read): Ditto.
844 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_store_release):
847 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
849 * src/atomic_ops/generalize-small.template
850 (AO_HAVE_XSIZE_fetch_and_add_full): Add missing definition.
851 * src/atomic_ops/generalize-small.template: Reformat code.
852 * src/atomic_ops/generalize-small.h: Regenerate.
854 2011-06-03 Ivan Maidanski <ivmai@mail.ru>
856 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Remove
857 blank line between AO_func and AO_HAVE_func definitions.
858 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
859 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
860 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
861 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
862 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
863 * src/atomic_ops/sysdeps/ordered.h: Ditto.
864 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
865 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
866 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
867 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
868 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
869 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
870 * src/atomic_ops/sysdeps/gcc/cris.h: Ditto.
871 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
872 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
873 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
874 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
875 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
876 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
877 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
878 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
879 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
880 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
881 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
882 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
883 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
884 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
885 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
886 * src/atomic_ops/sysdeps/sunc/sparc.h: Ditto.
887 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
888 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
889 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Reformat
891 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
892 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
893 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
894 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
895 * src/atomic_ops/sysdeps/ordered.h: Ditto.
896 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
897 * src/atomic_ops/sysdeps/test_and_set_t_is_char.h: Remove file
899 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Don't
901 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire,
902 AO_test_and_set, AO_compare_and_swap): Merge adjacent definitions.
903 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_store_release):
905 * src/atomic_ops/sysdeps/sunc/sparc.h: Expand all tabs to spaces;
906 remove trailing spaces at EOLn.
908 2011-06-02 Ivan Maidanski <ivmai@mail.ru>
910 * tests/test_malloc.c (main): Remove unused "exper_n" local
912 * tests/test_stack.c (run_one_test): Remove unused "aux" local
915 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
917 * src/atomic_ops/sysdeps/gcc/arm.h
918 (AO_compare_double_and_swap_double,
919 AO_HAVE_compare_double_and_swap_double): Define only starting from
921 * src/atomic_ops/sysdeps/gcc/arm.h
922 (AO_compare_double_and_swap_double): Fix function name in
923 assembler code; replace while (1) loop with "do-while".
925 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
927 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full):
928 Specify "%b0" (instead of "%0") in "xchg" instruction (to
929 workaround a bug in Sun C 5.11).
930 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
933 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
935 * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
936 Sun C compiler (call "release" variant of AO_store).
938 2011-06-01 Ivan Maidanski <ivmai@mail.ru>
940 * configure.ac (_PTHREADS): New template (used for NetBSD).
941 * configure.ac (THREADDLLIBS): New macro.
942 * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD,
943 test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS
944 instead of "-lpthread".
945 * configure: Regenerate.
946 * Makefile.in: Ditto.
947 * doc/Makefile.in: Ditto.
948 * src/Makefile.in: Ditto.
949 * src/atomic_ops/Makefile.in: Ditto.
950 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
951 * src/config.h.in: Ditto.
952 * tests/Makefile.in: Ditto.
954 2011-05-30 Ivan Maidanski <ivmai@mail.ru>
956 * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not
957 define the corresponding macro.
958 * configure.ac: Don't check for GCC twice.
959 * configure: Regenerate.
960 * tests/test_malloc.c (DEFAULT_NTHREADS): New macro.
961 * tests/test_malloc.c (run_one_test): Refine printed message (in
963 * tests/test_malloc.c (main): Use DEFAULT_NTHREADS.
964 * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer.
965 * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS,
966 OPT_MAP_ANON): New macro.
967 * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as
968 file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON).
969 * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON,
970 GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open()
973 2011-05-11 Ivan Maidanski <ivmai@mail.ru>
975 * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
977 * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and
978 LARGE_OBJ_SIZE, respectively.
979 * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH,
980 LARGE_OBJ_SIZE): Do not define unless undefined.
981 * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST
984 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
986 * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
988 * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
990 * tests/Makefile.am: Remove trailing spaces at EOLn.
991 * tests/Makefile.in: Regenerate.
993 2011-05-10 Ivan Maidanski <ivmai@mail.ru>
995 * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
997 * tests/test_stack.c: Expand all tabs to spaces.
998 * tests/test_atomic_include.h: Ditto.
999 * tests/test_stack.c (main): Free pop'ed elements.
1000 * tests/test_atomic_include.h (test_atomic, test_atomic_release,
1001 test_atomic_acquire, test_atomic_read, test_atomic_write,
1002 test_atomic_full, test_atomic_release_write,
1003 test_atomic_acquire_read): Remove prototype.
1005 2011-04-22 Ivan Maidanski <ivmai@mail.ru>
1007 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
1008 asm; remove redundant trailing ';'.
1010 2011-04-11 Ivan Maidanski <ivmai@mail.ru> (really Jim Meyering)
1012 * doc/README.txt: Remove doubled words in comments.
1014 2011-03-18 Ivan Maidanski <ivmai@mail.ru>
1016 * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
1017 ARM chips instead of all the currently existing v6+ ones.
1019 2011-03-13 Ivan Maidanski <ivmai@mail.ru>
1021 * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
1022 expand all tabs to spaces.
1023 * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
1024 Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug).
1025 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
1028 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
1030 * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl.
1031 * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in
1032 a conditional expression) to prevent a compiler warning.
1033 * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove
1034 trailing spaces at EOLn.
1036 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
1038 * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
1039 AO_USE_NANOSLEEP for NaCl.
1041 2011-02-19 Ivan Maidanski <ivmai@mail.ru>
1043 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
1044 automake-1.11.1 and libtool-2.4).
1047 2011-02-09 Ivan Maidanski <ivmai@mail.ru>
1049 * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
1051 * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
1053 * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS.
1054 * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP.
1055 * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code.
1056 * src/atomic_ops.c (AO_pause): Use nanosleep() if
1058 * src/atomic_ops.c (all_sigs, initialized,
1059 AO_compare_and_swap_emulation,
1060 AO_compare_double_and_swap_double_emulation): Use
1061 AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS.
1063 2011-01-07 Ivan Maidanski <ivmai@mail.ru>
1065 * src/.cvsignore: Add more auto-generated files.
1066 * tests/.cvsignore: Ditto.
1067 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store,
1068 AO_compare_double_and_swap_double): Reformat code.
1069 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
1070 AO_compare_double_and_swap_double): Ditto.
1071 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
1072 Produce "it eq" instruction only for Thumb mode.
1073 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
1075 2010-11-23 Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
1077 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
1078 Insert "it eq" just before "strexeq" (required for Thumb-2 mode,
1079 ignored in ARM mode).
1080 * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
1082 2010-09-15 Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
1084 * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__.
1085 * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__.
1086 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is
1088 * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS
1089 is defined but emul_cas.h has not been included.
1090 * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo.
1092 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
1094 * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
1095 automake-1.11.1 and libtool-2.2.8).
1098 2010-08-14 Ivan Maidanski <ivmai@mail.ru>
1100 * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
1103 2010-05-30 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
1105 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use
1106 "register long" (instead of "int") for "ret" variable.
1107 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace
1108 with AO_test_and_set_full (same for AO_HAVE_test_and_set).
1109 * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full):
1110 New function implemented.
1112 2010-05-22 Ivan Maidanski <ivmai@mail.ru>
1114 * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
1116 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1118 2010-05-21 Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
1120 * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
1121 * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
1123 2010-04-29 Ivan Maidanski <ivmai@mail.ru>
1125 * doc/README_malloc.txt: Fix a typo.
1126 * doc/README_stack.txt: Ditto.
1128 2010-02-25 Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
1130 * .cvsignore: New file.
1131 * doc/.cvsignore: Ditto.
1132 * src/.cvsignore: Ditto.
1133 * src/atomic_ops/.cvsignore: Ditto.
1134 * src/atomic_ops/sysdeps/.cvsignore: Ditto.
1135 * tests/.cvsignore: Ditto.
1137 2010-02-19 Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
1139 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full):
1140 Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN.
1141 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
1143 * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined
1144 if GCC v4.2+ or Intel compiler v11.1+ (only for amd64).
1145 * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel
1146 compiler in GCC compatible mode (only for x86 and amd64).
1148 2010-02-18 Ivan Maidanski <ivmai@mail.ru>
1150 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check
1151 for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on
1152 all x86_64/amd64 chips); remove the comment.
1153 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
1154 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only
1155 if AO_ASM_X64_AVAILABLE.
1156 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
1157 Use built-in __sync_bool_compare_and_swap() if GCC v4.2+.
1159 2010-02-17 Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
1161 * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full,
1162 AO_compare_double_and_swap_double_full): Use EAX for the result
1163 since cmpxchg clobbers it.
1164 * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full,
1165 AO_compare_double_and_swap_double_full): Ditto.
1166 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full,
1167 AO_compare_double_and_swap_double_full): Ditto.
1168 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full,
1169 AO_compare_double_and_swap_double_full): Ditto.
1171 2010-02-04 Ivan Maidanski <ivmai@mail.ru>
1173 * doc/Makefile.in: Regenerate.
1175 2010-02-04 Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
1177 * doc/Makefile.am: Remove duplicate file in the list.
1179 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
1181 * ChangeLog: Fix some typos.
1183 2010-02-03 Ivan Maidanski <ivmai@mail.ru>
1185 * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
1186 Define "i" variable only if used (to suppress a compiler warning).
1188 2010-02-02 Ivan Maidanski <ivmai@mail.ru>
1190 * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix
1191 "xchg" data size (remove "l" suffix).
1192 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
1194 * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
1196 * src/atomic_ops/sysdeps/sunc/x86.h
1197 (AO_compare_double_and_swap_double_full,
1198 AO_HAVE_compare_double_and_swap_double_full): Comment out (since
1199 not tested, might be wrong, and tickles a bug in some Sun CC
1200 versions; besides, __PIC__ macro is never predefined by Sun CC).
1202 2010-01-29 Ivan Maidanski <ivmai@mail.ru>
1204 * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b,
1205 automake-1.11.1, autoconf-2.65).
1206 * Makefile.in: Ditto.
1207 * aclocal.m4: Ditto.
1209 * config.guess: Ditto.
1210 * config.sub: Ditto.
1213 * install-sh: Ditto.
1215 * mkinstalldirs: Ditto.
1216 * doc/Makefile.in: Ditto.
1217 * src/Makefile.in: Ditto.
1218 * src/atomic_ops/Makefile.in: Ditto.
1219 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
1220 * src/config.h.in: Ditto.
1221 * tests/Makefile.in: Ditto.
1223 2009-12-19 Ivan Maidanski <ivmai@mail.ru>
1225 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
1226 AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
1228 2009-12-17 Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
1230 * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
1232 2009-12-04 Ivan Maidanski <ivmai@mail.ru>
1234 * configure.ac, README: Change to version 7.2alpha5.
1235 * configure: Regenerate.
1239 2009-12-02 Ivan Maidanski <ivmai@mail.ru>
1241 * configure.ac, README: Change to version 7.2alpha4.
1242 * configure: Regenerate.
1244 2009-12-01 Ivan Maidanski <ivmai@mail.ru>
1246 * configure.ac, README: Change to version 1.3alpha1.
1247 * configure: Regenerate.
1249 2009-11-21 Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
1251 * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
1253 * configure: Regenerate.
1255 2009-10-06 Ivan Maidanski <ivmai@mail.ru>
1257 * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
1260 2009-10-05 Ivan Maidanski <ivmai@mail.ru>
1262 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1264 2009-10-05 Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
1266 * src/atomic_ops/sysdeps/gcc/sh.h: New file.
1267 * src/atomic_ops.h: Include gcc/sh.h if __arm__.
1268 * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
1270 2009-10-02 Ivan Maidanski <ivmai@mail.ru>
1272 * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
1273 msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
1274 entries; order all entries alphabetically.
1275 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1277 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
1279 * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
1280 automake-1.10.2, autoconf-2.64).
1282 * Makefile.in: Ditto.
1283 * aclocal.m4: Ditto.
1284 * config.guess: Ditto.
1285 * config.sub: Ditto.
1288 * install-sh: Ditto.
1290 * mkinstalldirs: Ditto.
1291 * doc/Makefile.in: Ditto.
1292 * src/config.h.in: Ditto.
1293 * src/Makefile.in: Ditto.
1294 * src/atomic_ops/Makefile.in: Ditto.
1295 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
1296 * tests/Makefile.in: Ditto.
1298 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
1300 * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
1301 for the preprocessor directives.
1302 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
1304 2009-09-30 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
1306 * README: Move notes from the hand-edited part of INSTALL which
1307 was overwritten by Automake recently.
1309 2009-09-26 Ivan Maidanski <ivmai@mail.ru>
1311 * aclocal.m4: Regenerate (by autoreconf -vif).
1312 * config.guess: Ditto.
1313 * config.sub: Ditto.
1316 * Makefile.in: Ditto.
1317 * doc/Makefile.in: Ditto.
1318 * src/config.h.in: Ditto.
1319 * src/Makefile.in: Ditto.
1320 * src/atomic_ops/Makefile.in: Ditto.
1321 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
1322 * tests/Makefile.in: Ditto.
1324 2009-09-25 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
1326 * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
1328 2009-09-16 Ivan Maidanski <ivmai@mail.ru>
1330 * ChangeLog: Remove trailing spaces at EOLn.
1331 * doc/README.txt: Expand all tabs to spaces; remove trailing
1332 spaces at EOLn; remove multiple trailing blank lines.
1333 * src/atomic_ops.c: Ditto.
1334 * src/atomic_ops.h: Ditto.
1335 * src/atomic_ops/generalize-small.h: Ditto.
1336 * src/atomic_ops/generalize.h: Ditto.
1337 * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
1338 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
1339 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
1340 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
1341 * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
1342 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
1343 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
1344 * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
1345 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
1346 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
1347 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
1348 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
1349 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
1350 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
1351 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
1352 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
1353 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
1354 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
1355 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
1356 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
1357 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
1358 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
1359 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
1360 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
1361 * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
1362 * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
1363 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
1364 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
1365 * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
1366 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
1367 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
1368 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
1369 * src/atomic_ops/sysdeps/ordered.h: Ditto.
1370 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
1371 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
1372 * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
1373 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
1374 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
1375 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
1376 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
1377 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
1378 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
1379 * src/atomic_ops_stack.c: Ditto.
1380 * src/atomic_ops_stack.h: Ditto.
1381 * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
1383 * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
1385 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
1388 * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
1389 (regarding memory barrier).
1390 * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
1391 AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
1392 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
1393 AO_test_and_set): Replace FIXME with the comment saying it is
1394 emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
1395 * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
1396 using InterlockedCompareExchange() (assuming the latter has a full
1398 * src/atomic_ops/sysdeps/msftc/arm.h: Include
1399 all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
1400 of pre-ARMv6; add the comment.
1402 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
1405 * src/atomic_ops/sysdeps/armcc/arm_v6.h
1406 (AO_compare_double_and_swap_double): Replace false/true with 0/1.
1407 * src/atomic_ops/sysdeps/gcc/arm.h
1408 (AO_compare_double_and_swap_double): Ditto.
1409 * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
1410 predefined macros (6J, 6ZK, 7A, 7M, 7R).
1411 * src/atomic_ops/sysdeps/gcc/arm.h
1412 (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
1413 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
1414 Correct the name (convert from the lower case).
1415 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
1417 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
1418 AO_compare_and_swap): Comment out unimplemented code (and the
1419 corresponding macros); add FIXME.
1420 * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
1421 _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
1422 pthreads-w32 library); don't include signal.h, sys/time.h,
1423 sys/select.h in this case; include windows.h instead.
1424 * src/atomic_ops.c (AO_pause): Use Sleep() in case of
1425 AO_USE_WIN32_PTHREADS (instead of select()).
1426 * src/atomic_ops.c (all_sigs, initialized): Don't define in case
1427 of AO_USE_WIN32_PTHREADS.
1428 * src/atomic_ops.c (AO_compare_and_swap_emulation,
1429 AO_compare_double_and_swap_double_emulation): Don't deal with
1430 signals in case of AO_USE_WIN32_PTHREADS.
1432 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
1435 * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
1437 * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
1438 * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
1440 * src/atomic_ops/sysdeps/msftc/common32_defs.h
1441 (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
1442 * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
1443 declarations to common32_defs.h.
1444 * src/atomic_ops/sysdeps/msftc/common32_defs.h
1445 (AO_INTERLOCKED_VOLATILE): New macro defined (used by
1446 Interlocked-based primitives) for compatibility with older VC++.
1447 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
1448 missing <intrin.h> if WinCE target.
1449 * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
1450 (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
1451 * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
1452 AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
1453 AO_compare_and_swap_full): Move arch-independent primitives to
1455 * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
1456 better CPU (since Interlocked Add and Xchg primitives are available
1458 * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
1460 * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
1462 * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
1464 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
1467 * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
1468 ASSUME_WINDOWS98 with "AO_").
1469 * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
1471 * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
1472 K&R-style function definition with ANSI C one.
1473 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
1474 Replace AO_TS_SET with its value 0xff (some compilers does not like
1475 C enum consts inside inline assembler).
1476 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
1477 comment about "missing return value" warning.
1478 * src/atomic_ops/sysdeps/msftc/x86.h
1479 (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
1480 * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
1481 _InterlockedCompareExchange() with args and result of PVOID type
1482 if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
1483 DigitalMars compiler support).
1484 * src/atomic_ops/sysdeps/msftc/x86.h
1485 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
1486 variables ("val1" is the lowest part of AO_double_t).
1487 * src/atomic_ops/sysdeps/msftc/x86.h
1488 (AO_compare_double_and_swap_double_full): Rename to
1489 AO_double_compare_and_swap_full (as it has 3 args).
1490 * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
1493 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
1496 * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
1497 and 32-bit WinChips.
1498 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
1499 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
1500 K&R-style function definition with ANSI C one.
1501 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
1502 * src/atomic_ops/sysdeps/gcc/x86_64.h
1503 (AO_compare_double_and_swap_double_full): Fix comment.
1504 * src/atomic_ops/sysdeps/gcc/x86_64.h
1505 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
1506 variables ("val1" is the lowest part of AO_double_t).
1507 * src/atomic_ops/sysdeps/msftc/x86_64.h
1508 (AO_compare_double_and_swap_double_full): Ditto.
1509 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
1511 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
1513 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
1514 "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
1515 x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
1516 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
1517 "standard_ao_double_t.h" (same as in x86_64.h for gcc).
1518 * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
1519 <intrin.h> assuming at least VC++ v8.
1520 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
1521 prototypes (since they are always declared in intrin.h).
1522 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
1523 definition below CAS primitive (to textually group all asm-based
1524 primitives together).
1525 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
1526 Implement for AO_ASM_X64_AVAILABLE case.
1527 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
1528 macro (replaced with AO_ASM_X64_AVAILABLE).
1529 * src/atomic_ops/sysdeps/msftc/x86_64.h
1530 (AO_compare_double_and_swap_double_full): Add intrinsic-based
1531 implementation for VC++ v9+.
1532 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
1533 <xmmintrin.h> (and use "__m128" type) if _WIN64.
1534 * src/atomic_ops/sysdeps/standard_ao_double_t.h
1535 (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
1536 "double_ptr_storage" is defined for all cases).
1538 2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
1540 * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
1541 Renamed to AO_NO_SPARC_V9.
1543 2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
1545 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
1546 AO_TS_VAL_t for "oldval" (for 64-bit support).
1547 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
1548 New function implemented.
1550 2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
1551 (diff107_cvs, resembling diff78 and diff88_cvs)
1553 * src/atomic_ops/sysdeps/sunc/x86.h: New file.
1554 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
1555 * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
1557 * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
1558 implementation for VC++ v8+ (include <intrin.h> before it unless
1559 WinCE target); use asm-based barrier implementation for Borland,
1560 DigitalMars and Watcom.
1561 * src/atomic_ops.h: Fix comment (for x86_64).
1562 * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
1563 headers for Sun C (if not AO_USE_PTHREAD_DEFS).
1564 * src/atomic_ops.h: Include VC-specific arch headers for Borland,
1565 DigitalMars and Watcom (Win32 target only).
1567 2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
1568 (diff87_cvs, resembling diff29, diff68, diff78 partly)
1570 * doc/README.txt: Remove outdated info about Windows support.
1571 * src/atomic_ops/generalize.h (AO_nop_full): Replace
1572 K&R-style function definition with ANSI C one.
1573 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
1574 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
1576 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
1577 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
1578 * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
1579 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
1580 * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
1581 * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
1582 * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
1583 * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
1584 * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
1585 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
1586 * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
1587 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
1590 2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
1592 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
1593 update modifiers to asms, refine clobbers to "cr0", use
1594 cr0 instead of cr7, add explicit AO_fetch_and_add,
1595 add UNTESTED 64 bit support.
1597 2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
1599 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
1600 AO_compare_and_swap value differently, add
1601 AO_compare_double_and_swap_double, some indentation fixes.
1602 * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
1603 robust and minimize clobbers, Add AO_compare_double_and_swap_double.
1605 2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
1607 * INSTALL: Add some platform-specific documentation.
1608 * src/Makefile.msft: Fix copyright notice.
1610 2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
1612 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
1613 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
1614 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
1615 * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
1616 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
1617 * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
1618 * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
1619 * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
1620 * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
1621 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
1622 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
1623 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
1624 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
1625 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
1626 * src/atomic_ops.c: Fix comments.
1627 * src/atomic_ops.h: Fix comments.
1628 * src/atomic_ops_stack.c: Fix comments.
1629 * src/atomic_ops_stack.h: Fix comments.
1631 2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
1633 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
1636 2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
1638 * config.guess, config.sub, configure: Regenerate/replace.
1639 Use autoconf 2.61, automake 1.9.6.
1641 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
1643 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
1646 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
1648 * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
1650 2008-07-24 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
1652 * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
1653 Add parentheses around addr arg for various functions.
1655 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
1657 * src/atomic_ops/sysdeps/gcc/powerpc.h:
1658 Add const to first parameter of load calls (forgot one).
1660 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
1662 * doc/README.txt, src/atomic_ops/generalize.h,
1663 src/atomic_ops/generalize-small.template,
1664 src/atomic_ops/generalize-small.h,
1665 src/atomic_ops/sysdeps/acquire_release_volatile.h,
1666 src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
1667 src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
1668 src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
1669 src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
1670 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
1671 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
1672 src/atomic_ops/sysdeps/ao_t_is_int.h,
1673 src/atomic_ops/sysdeps/atomic_load_store.h,
1674 src/atomic_ops/sysdeps/char_atomic_load_store.h,
1675 src/atomic_ops/sysdeps/int_atomic_load_store.h,
1676 src/atomic_ops/sysdeps/short_atomic_load_store.h,
1677 src/atomic_ops/sysdeps/generic_pthread.h,
1678 src/atomic_ops/sysdeps/read_ordered.h,
1679 src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
1680 src/atomic_ops/sysdeps/gcc/arm.h,
1681 src/atomic_ops/sysdeps/icc/ia64.h,
1682 src/atomic_ops/sysdeps/ibmc/powerpc.h:
1683 Add const to first parameter of load calls.
1685 2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
1687 * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
1688 AO_or_full, and let it be autogenerated instead.
1690 2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
1692 * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
1693 fixing a merge accident.
1695 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
1698 * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
1701 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
1704 * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
1705 src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
1706 * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
1707 on char, align AO_t. Add cas, or.
1708 * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
1709 * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
1710 * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
1711 tests/Makefile.in: Regenerate.
1713 2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
1714 (Really Ian Wienand & Debian maintainers)
1716 * src/atomic_ops/sysdeps/gcc/x86.h
1717 (AO_compare_double_and_swap_double_full): Correctly account for
1720 2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
1722 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
1723 double_ptr_storage default to long long; define everywhere.
1725 2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
1727 * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
1728 compare_double_and_swap_double.
1730 2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
1732 * src/atomic_ops/generalize.h: Add test_and_set generalizations,
1733 Add AO_double_compare_and_swap generalizations.
1734 * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
1735 * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
1736 * src/atomic_ops/sysdeps/gcc/x86.h,
1737 src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
1738 compare_double_and_swap_double, commented out for msftc.
1739 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add
1740 double_ptr_storage field.
1742 2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
1743 (Merge from separate atomic_ops tree)
1745 * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
1746 double-width cas, and fix its implementation.
1747 * doc/README.txt: Clarify use of _full. Add more warnings about
1750 2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
1752 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
1753 %X1 modifier to support indexed addressing.
1755 2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
1757 * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
1760 2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
1762 * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
1765 2007-06-26 Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
1767 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
1770 2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
1772 * src/atomic_ops.h: include stddef.h
1774 2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
1776 * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
1777 * src/atomic_ops.h: Add test for msftc/x86_64.h.
1778 * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
1779 * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
1780 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1781 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
1782 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
1783 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
1784 Replace unsigned long cast with size_t.
1786 2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
1788 * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
1789 Add cast for return.
1791 2007-05-14 Hans Boehm <Hans.Boehm@hp.com>
1793 * doc/README.txt: Update to reflect C++0x effort.
1795 2007-05-07 Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
1797 * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
1799 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
1802 2006-11-09 Earl Chew (Agilent)
1804 * msftc/x86.h: Follow Microsoft documentation and include
1809 2006-07-11 Hans Boehm <Hans.Boehm@hp.com>
1811 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
1813 2006-03-28 Earl Chew (Agilent)
1815 * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
1816 * src/atomic_ops/sysdeps/msftc/x86.h:
1817 Use new intrinsics available in MSVC 2003 and MSVC 2005.
1818 Use inline assembler to generate mfence and byte sized xchg
1819 Use correct prototype for InterlockedCompareExchange.
1820 * src/atomic_ops.h: Add test for __PPC__ .
1821 * tests/run_parallel.inc: Add simple VxWorks support.
1822 * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
1823 to silence compiler warnings.
1825 2006-11-13 Hans Boehm <Hans.Boehm@hp.com>
1827 * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
1828 * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
1830 2005-11-04 Hans Boehm <Hans.Boehm@hp.com>
1832 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1833 all_acquire_release_volatile.h, instead of just the pointer-sized
1835 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1836 all_acquire_release_volatile.h and all_atomic_load_store.h,
1837 instead of just the pointer-sized versions.
1841 2005-09-27 Hans Boehm <Hans.Boehm@hp.com>
1843 * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
1844 * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
1845 ordered_except_wr.h.
1846 * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
1847 instead of duplicating it.
1848 * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
1850 2005-09-16 Hans Boehm <Hans.Boehm@hp.com>
1852 * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
1853 definition with one that might actually work. (Thanks to Kazu
1854 Hirata and Paul Brook.)
1856 2005-08-01 Hans Boehm <Hans.Boehm@hp.com>
1858 * src/atomic_ops/Makefile.am: Change function naming from "byte" to
1863 2005-03-21 Hans Boehm <Hans.Boehm@hp.com>
1864 Fix various acquire_release_volatile.h files to reflect the fact
1865 that both icc and gcc seem to reorder ordinary memory accesses around
1866 volatile accesses early in the compilation. Modify the acquire
1867 release test to catch this problem (with high probability, and only on
1870 2005-03 Hans Boehm <Hans.Boehm@hp.com>
1871 Fixes for recently introduced bugs. Update x86 and x86-64 assembly
1872 syntax to deal with complaints by some recent gcc versions.
1874 2005-02 Hans Boehm <Hans.Boehm@hp.com>
1875 Added libatomic_ops_gpl library with support for mostly
1876 lock-free stack and malloc().
1878 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
1879 Hans Boehm <Hans.Boehm@hp.com>
1880 Use autoconf, automake, starting with code from Debian package.
1883 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1884 * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
1885 Change most platforms to use byte-wide test-and-set locations.
1887 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1888 * ao_t_is_int.h: Add to trivially support int-wide operations
1889 on platforms with int-sized pointers.
1891 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1892 * gcc/powerpc.h: First serious attempt to support PowerPC (with
1893 help from Maged Michael and others).
1895 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1896 * sunc/sparc.[hS]: Added minimal support for the Sun SPARC compiler.
1897 * atomic_ops_sysdeps.S: Add support for platforms that require
1898 out-of-line assembly code.
1900 2004-10 Hans Boehm <Hans.Boehm@hp.com>
1901 More work on char, short, int sized data. Add both
1902 compare_double_and_swap_double and compare_and_swap_double.
1903 Typically each platform will provide at most one of these.
1905 2004-07-02 Ranko Zivojnovic
1906 Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
1908 2004-06 Hans Boehm <Hans.Boehm@hp.com>
1909 Start to add atomic_ops primitives for different sized data.
1911 2003-12-18 Hans Boehm <Hans.Boehm@hp.com>
1913 * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
1914 Fix support for ecc on IA64. Remove compiler_barrier workaround
1915 for gcc 3.4 and later.
1917 2003-12-17 Hans Boehm <Hans.Boehm@hp.com>
1919 * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
1920 atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
1921 Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
1922 for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
1923 compiler on PA_RISC and IA64.
1925 2003-12-09 Hans Boehm <Hans.Boehm@hp.com>
1927 * many: Install under "atomic_ops" instead of "ao".
1928 Change atomic_ops include file structure. Auxiliary include
1929 files are all under include/atomic_ops.
1930 Fix (hopefully) "make dist" in atomic_ops distribution.
1931 Renamed various types to end in _t, though the old versions
1932 are still defined for backward compatibility.
1934 2003-12-08 Carlos O'Donell <carlos@baldric.uwo.ca>
1936 * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
1937 AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
1938 helper macros. AO_test_and_set_full uses helper macros.
1941 Started sometime after version 0.4 release. Currently the format is
1942 informal. Eventually should become more GNU-like.