Update ChangeLog
[platform/upstream/libatomic_ops.git] / ChangeLog
1 2017-03-15  Ivan Maidanski <ivmai@mail.ru>
2
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).
7
8 2017-02-22  Ivan Maidanski <ivmai@mail.ru>
9
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.
12
13 2017-02-20  Ivan Maidanski <ivmai@mail.ru>
14
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.
19
20 2017-01-31  Ivan Maidanski <ivmai@mail.ru>
21
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).
25
26 2017-01-26  Ivan Maidanski <ivmai@mail.ru>
27
28         * src/atomic_ops.h (AO_TS_INITIALIZER): Change type from AO_t to
29         AO_TS_t; add outermost parentheses.
30
31 2017-01-24  Ivan Maidanski <ivmai@mail.ru>
32
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.
41
42 2017-01-16  Ivan Maidanski <ivmai@mail.ru>
43
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).
46
47 2012-10-08  Ivan Maidanski <ivmai@mail.ru>
48
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).
52
53 2011-08-09  Ivan Maidanski <ivmai@mail.ru>
54
55         * src/Makefile.msft: Replace -o option with /Fo.
56         * src/Makefile.msft (clean): New target.
57
58 2011-08-09  Ivan Maidanski <ivmai@mail.ru>
59
60         * src/Makefile.msft (all): Build "libatomic_ops_gpl.lib" instead of
61         "check".
62         * src/Makefile.msft (test_malloc): Wrap long lines.
63
64 2016-11-02  Ivan Maidanski <ivmai@mail.ru>
65
66         * doc/README.txt: Document AO_REQUIRE_CAS better (replace
67         "compare-and-swap" with "AO_compare_and_swap*").
68
69 2016-08-24  Ivan Maidanski <ivmai@mail.ru>
70
71         * tests/test_atomic.template (test_atomicXX): Replace assert()
72         calls with TA_assert().
73         * test_atomic_include.h: Regenerate.
74
75 2016-08-22  Ivan Maidanski <ivmai@mail.ru>
76
77         * src/atomic_ops_malloc.c: Include limits.h (unless SIZE_MAX already
78         defined).
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).
84
85 2016-10-05  Ivan Maidanski <ivmai@mail.ru>
86
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]:
93         Likewise.
94         * src/atomic_ops/sysdeps/armcc/arm_v6.h [__TARGET_ARCH_ARM < 6]: Add
95         #error pragma.
96         * src/atomic_ops_stack.c [AO_HAVE_compare_and_swap_double]: Fix typo
97         ("does not") in #error message.
98
99 [7.2g]
100
101 2016-05-23  Ivan Maidanski <ivmai@mail.ru>
102
103         * README: Bump version to 7.2g (rev. G).
104
105 2016-05-23  Hans Boehm <boehm@acm.org>
106
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.
110
111 2014-02-21  Ivan Maidanski <ivmai@mail.ru>
112
113         * README: Update links to BDWGC/libatomic_ops site.
114         * doc/README_stack.txt: Likewise.
115
116 2016-03-24  Ivan Maidanski <ivmai@mail.ru>
117
118         * doc/README.txt (Future directions): Remove (obsolete information
119         about C++0x standard future).
120
121 2016-03-22  Ivan Maidanski <ivmai@mail.ru>
122
123         * Makefile.in: Regenerate properly (remove ltmain.sh from DIST_COMMON).
124
125 2016-03-22  Ivan Maidanski <ivmai@mail.ru>
126
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.
131
132 2015-01-08  James Cowgill <james410@cowgill.org.uk>
133
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).
137
138 [7.2f]
139
140 2014-05-02  Ivan Maidanski <ivmai@mail.ru>
141
142         * README: Bump version to 7.2f (rev. F).
143
144 2014-05-02  Ivan Maidanski <ivmai@mail.ru>
145
146         * configure: Regenerate (by autoreconf -vif using autoconf-2.69,
147         automake-1.14.1 and libtool-2.4.2.418).
148         * INSTALL: Likewise.
149         * Makefile.in: Likewise.
150         * aclocal.m4: Likewise.
151         * config.guess: Likewise.
152         * config.sub: Likewise.
153         * doc/Makefile.in: Likewise.
154         * missing: 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.
161
162 2014-03-28  Jan-Erik Rediger <badboy@archlinux.us>
163
164         * doc/README.txt: Remove redundant "an" article (fix typo).
165
166 [7.2e]
167
168 2013-11-10  Ivan Maidanski <ivmai@mail.ru>
169
170         * README: Bump version to 7.2e (rev. E).
171
172 2013-08-31  Ivan Maidanski <ivmai@mail.ru>
173
174         * configure: Regenerate (by autoreconf -vif using autoconf-2.69,
175         automake-1.13.4 and libtool-2.4.2).
176         * INSTALL: Likewise.
177         * Makefile.in: Likewise.
178         * aclocal.m4: Likewise.
179         * compile: Likewise.
180         * config.guess: Likewise.
181         * config.sub: Likewise.
182         * depcomp: Likewise.
183         * doc/Makefile.in: Likewise.
184         * install-sh: Likewise.
185         * missing: 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.
192
193 2013-08-18  Ivan Maidanski <ivmai@mail.ru>
194
195         * aclocal.m4: Regenerate (by autoreconf -vif).
196
197 2013-08-17  Ivan Maidanski <ivmai@mail.ru>
198
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.
203
204 2013-08-17  Ivan Maidanski <ivmai@mail.ru>
205
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.
209
210 2013-08-17  Ivan Maidanski <ivmai@mail.ru>
211
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).
217
218 2013-07-30  Ivan Maidanski <ivmai@mail.ru>
219
220         * src/atomic_ops/generalize.h: Fix a typo in comment
221         ("acquire").
222
223 2013-04-03  Manuel Serrano <Manuel.Serrano@inria.fr>
224
225         * configure.ac (AM_CONFIG_HEADER): Replace obsolete macro with with
226         AC_CONFIG_HEADERS one.
227
228 2013-03-29  Ivan Maidanski <ivmai@mail.ru>
229
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.
233
234 2013-03-29  Ivan Maidanski <ivmai@mail.ru>
235
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
241         code).
242
243 2013-03-13  Ivan Maidanski <ivmai@mail.ru>
244
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).
248
249 2013-03-12  Ivan Maidanski <ivmai@mail.ru>
250
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).
254
255 2013-02-14  Ivan Maidanski <ivmai@mail.ru>
256
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.
264
265 2013-01-15  Ivan Maidanski <ivmai@mail.ru>
266
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.
271
272 2013-01-14  Ivan Maidanski <ivmai@mail.ru>
273
274         * src/atomic_ops/sysdeps/ao_t_is_int.h: Fix a typo in comment.
275
276 2013-01-13  Ivan Maidanski <ivmai@mail.ru>
277
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.
283
284 2013-01-13  Ivan Maidanski <ivmai@mail.ru>
285
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
289         the former header).
290
291 2013-01-13  Ivan Maidanski <ivmai@mail.ru>
292
293         * src/atomic_ops/sysdeps/msftc/arm.h: Fix a typo in comment (about
294         SWP).
295
296 2013-01-07  Ivan Maidanski <ivmai@mail.ru>
297
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).
302
303 2013-01-06  Ivan Maidanski <ivmai@mail.ru>
304
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.
310
311 2013-01-05  Ivan Maidanski <ivmai@mail.ru>
312
313         * src/atomic_ops/Makefile.in: Regenerate (by autoreconf -vif).
314
315 2013-01-04  Ivan Maidanski <ivmai@mail.ru>
316
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
320         atomic_ops.h).
321
322 2013-01-02  Ivan Maidanski <ivmai@mail.ru>
323
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.
327
328 2013-01-02  Ivan Maidanski <ivmai@mail.ru>
329
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.
337
338 2012-10-09  Ivan Maidanski <ivmai@mail.ru>
339
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).
344
345 2012-10-08  Ivan Maidanski <ivmai@mail.ru>
346
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).
356
357 2012-10-05  Ivan Maidanski <ivmai@mail.ru>
358
359         * src/atomic_ops.h: Fix typos in comments (update generalize.h
360         filename).
361
362 2012-10-03  Ivan Maidanski <ivmai@mail.ru>
363
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).
369
370 2012-10-03  Ivan Maidanski <ivmai@mail.ru>
371
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
375         its value).
376
377 2012-10-02  Ivan Maidanski <ivmai@mail.ru>
378
379         * src/atomic_ops.h: Fix 'load' primitive name in comment (replace
380         AO_load_release_read with AO_load_acquire_read).
381
382 2012-10-02  Ivan Maidanski <ivmai@mail.ru>
383
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.
388
389 2012-10-01  Ivan Maidanski <ivmai@mail.ru>
390
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.
394
395 2012-09-19  Ivan Maidanski <ivmai@mail.ru>
396
397         * configure: Regenerate (by autoreconf -vif using autoconf-2.68,
398         automake-1.11.3 and libtool-2.4.2).
399         * INSTALL: Likewise.
400         * Makefile.in: Likewise.
401         * aclocal.m4: Likewise.
402         * compile: Likewise.
403         * config.guess: Likewise.
404         * config.sub: Likewise.
405         * depcomp: Likewise.
406         * doc/Makefile.in: Likewise.
407         * install-sh: Likewise.
408         * missing: 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.
413
414 2012-09-18  Ivan Maidanski <ivmai@mail.ru>
415
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).
423
424 2012-09-18  Ivan Maidanski <ivmai@mail.ru>
425
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.
430
431 2012-09-18  Ivan Maidanski <ivmai@mail.ru>
432
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.
437
438 2012-09-18  Ivan Maidanski <ivmai@mail.ru>
439
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.
443
444 2012-09-05  Ivan Maidanski <ivmai@mail.ru>
445
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.
453
454 [7.2d]
455
456 2012-08-09  Ivan Maidanski <ivmai@mail.ru>
457
458         * README: Change version to 7.2d (rev. D).
459
460 2012-08-01  Ivan Maidanski <ivmai@mail.ru>
461
462         * src/atomic_ops.h (AO_compiler_barrier): Add parentheses and cast to
463         void.
464
465 2012-07-12  Ivan Maidanski <ivmai@mail.ru>
466
467         * config.guess: Regenerate (by autoreconf -vif using autoconf-2.68,
468         automake-1.11.1 and libtool-2.4).
469         * config.sub: Likewise.
470
471 2012-07-04  Ivan Maidanski <ivmai@mail.ru>
472
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
478         comment.
479
480 2012-07-01  Ivan Maidanski <ivmai@mail.ru>
481
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.
488
489 [7.2]
490
491 2012-05-11  Ivan Maidanski <ivmai@mail.ru>
492
493         * configure.ac, README: Bump version to 7.2 (final).
494         * configure: Regenerate.
495
496 2012-05-01  H.J. Lu <hjl.tools@gmail.com>
497
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.
501
502 2012-04-16  H.J. Lu <hjl.tools@gmail.com>
503
504         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_T_IS_INT): Defined
505         for x32.
506
507 2012-03-28  Ivan Maidanski <ivmai@mail.ru>
508
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.
514
515 2012-03-26  Ivan Maidanski <ivmai@mail.ru>
516
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).
520
521 2012-03-26  Ivan Maidanski <ivmai@mail.ru>
522
523         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Fix a typo in
524         comment.
525
526 2012-03-19  Ivan Maidanski <ivmai@mail.ru>
527
528         * configure: Regenerate.
529         * Makefile.in: Likewise.
530
531 2011-08-14  Petter Urkedal <paurkedal@gmail.com>
532
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.
536
537 2011-08-04  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
538
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.
543
544 2012-03-07  Ivan Maidanski <ivmai@mail.ru>
545
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.
551
552 2012-03-07  Ivan Maidanski <ivmai@mail.ru>
553
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
556         comment.
557
558 2012-03-07  Ivan Maidanski <ivmai@mail.ru>
559
560         * src/atomic_ops/sysdeps/gcc/x86.h
561         (AO_compare_double_and_swap_double_full): Fix argument name in the
562         comment.
563         * src/atomic_ops/sysdeps/sunc/x86.h
564         (AO_compare_double_and_swap_double_full): Likewise.
565
566 2012-03-04  Ivan Maidanski <ivmai@mail.ru>
567
568         * src/atomic_ops_malloc.h (AO_malloc_enable_mmap): Fix a typo in the
569         comment.
570
571 2012-01-19  Ivan Maidanski <ivmai@mail.ru>
572
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.
576
577 2011-12-16  Ivan Maidanski <ivmai@mail.ru>
578
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.
582
583 2011-11-29  Ivan Maidanski <ivmai@mail.ru>
584
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.
589
590 2011-11-03  Ivan Maidanski <ivmai@mail.ru>
591
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
595         XCTYPE.
596         * src/atomic_ops/generalize-small.h: Regenerate.
597
598 2011-10-24  Ivan Maidanski <ivmai@mail.ru>
599
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):
603         Likewise.
604
605 2011-10-24  Ivan Maidanski <ivmai@mail.ru>
606
607         * tests/test_atomic_include.h: Regenerate.
608
609 2011-10-24  Ivan Maidanski <ivmai@mail.ru>
610
611         * tests/test_atomic_include.template (test_atomicXX): Add action for
612         the missing AO_compare_and_swap primitive.
613
614 2011-10-21  Ivan Maidanski <ivmai@mail.ru>
615
616         * src/atomic_ops.c (init_lock): Define only unless AO_USE_NO_SIGNALS.
617
618 2011-10-21  Ivan Maidanski <ivmai@mail.ru>
619
620         * doc/README.txt: Fix a typo.
621
622 2011-10-21  Ivan Maidanski <ivmai@mail.ru>
623
624         * src/atomic_ops/sysdeps/gcc/alpha.h (AO_compare_and_swap): Cast
625         returned value to int.
626
627 2011-10-17  Ivan Maidanski <ivmai@mail.ru>
628
629         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
630
631 2011-10-17  Ivan Maidanski <ivmai@mail.ru> (really Thorsten Glaser)
632
633         * src/atomic_ops/sysdeps/gcc/m68k.h (AO_test_and_set_full): Cast the
634         returned value.
635
636 2011-10-15  Ivan Maidanski <ivmai@mail.ru>
637
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.
642
643 2011-10-11  Ivan Maidanski <ivmai@mail.ru> (really Linas Vepstas)
644
645         * src/atomic_ops/sysdeps/Makefile.am (nobase_private_HEADERS): Add
646         hexagon.h.
647         * src/atomic_ops.h: Include hexagon.h file.
648         * src/atomic_ops/sysdeps/gcc/hexagon.h: New file.
649
650 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
651
652         * src/atomic_ops.c
653         (AO_non_posix_implementation_is_entirely_in_headers): Make external.
654
655 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
656
657         * configure: Regenerate.
658         * tests/Makefile.in: Ditto.
659         * tests/test_atomic_include.h: Ditto.
660
661 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
662
663         * configure.ac (PICFLAG, THREADDLLIBS): Define as empty for MinGW.
664         * configure.ac (have_pthreads): New definition (set to true unless
665         MinGW).
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
672         HAVE_PTHREAD_H.
673         * tests/Makefile.am (check_PROGRAMS): Define to TESTS value.
674
675 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
676
677         * configure.ac (PICFLAG): Set to -fPIC if GCC but not Gygwin.
678
679 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
680
681         * tests/test_malloc.c (LIST_LENGTH, LARGE_OBJ_SIZE): Define to
682         a smaller value unless HAVE_MMAP.
683
684 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
685
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
690         creation failed.
691
692 2011-09-15  Ivan Maidanski <ivmai@mail.ru>
693
694         * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo (replace AO_FORCE_CAS
695         with AO_REQUIRE_CAS in a comment).
696
697 2011-09-08  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
698
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.
703
704 2011-07-14  Ivan Maidanski <ivmai@mail.ru>
705
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.
723
724 2011-06-27  Ivan Maidanski <ivmai@mail.ru> (really Jeremy Huddleston)
725
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):
730         Ditto.
731
732 2011-06-15  Ivan Maidanski <ivmai@mail.ru>
733
734         * configure.ac, README: Change to version 7.2alpha7.
735         * configure: Regenerate.
736
737 [7.2alpha6]
738
739 2011-06-14  Ivan Maidanski  <ivmai@mail.ru>
740
741         * configure.ac, README: Change to version 7.2alpha6.
742         * configure: Regenerate.
743
744 2011-06-07  Ivan Maidanski  <ivmai@mail.ru>
745
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
748         commit).
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).
758
759 2011-06-07  Ivan Maidanski  <ivmai@mail.ru>
760
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;
764         add a comment.
765         * src/atomic_ops/sysdeps/gcc/arm.h
766         (AO_compare_double_and_swap_double): Handle ARMv7EM architecture
767         (similar to ARMv7M).
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
770         previously).
771
772 2011-06-07  Ivan Maidanski  <ivmai@mail.ru>
773
774         * src/atomic_ops/generalize.h: Reformat code.
775         * src/atomic_ops/generalize.h (AO_test_and_set_acquire): Fix
776         return type.
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).
781
782 2011-06-06  Ivan Maidanski  <ivmai@mail.ru>
783
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"
787         otherwise).
788         * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Use "IT"
789         instruction only for Thumb-2 mode.
790
791 2011-06-06  Ivan Maidanski  <ivmai@mail.ru>
792
793         * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
794         AO_THUMB_RESTORE_MODE, AO_THUMB_SWITCH_CLOBBERS): Define as empty
795         for Thumb-2 mode.
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.
807
808 2011-06-06  Ivan Maidanski  <ivmai@mail.ru>
809
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.
823
824 2011-06-06  Ivan Maidanski  <ivmai@mail.ru>
825
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
829         function name.
830
831 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
832
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.
836
837 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
838
839         * src/atomic_ops/generalize.h (AO_HAVE_or_full): Add missing
840         definition.
841         * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_HAVE_nop_write):
842         Fix macro name.
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):
845         Ditto.
846
847 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
848
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.
853
854 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
855
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
890         comment.
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
898         tail blank lines.
899         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Don't
900         define for ARMv2.
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):
904         Define.
905         * src/atomic_ops/sysdeps/sunc/sparc.h: Expand all tabs to spaces;
906         remove trailing spaces at EOLn.
907
908 2011-06-02  Ivan Maidanski  <ivmai@mail.ru>
909
910         * tests/test_malloc.c (main): Remove unused "exper_n" local
911         variable.
912         * tests/test_stack.c (run_one_test): Remove unused "aux" local
913         variable.
914
915 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
916
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
920         ARMv6K.
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".
924
925 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
926
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):
931         Ditto.
932
933 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
934
935         * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
936         Sun C compiler (call "release" variant of AO_store).
937
938 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
939
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.
953
954 2011-05-30  Ivan Maidanski  <ivmai@mail.ru>
955
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
962         case of HAVE_MMAP).
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()
971         returned value.
972
973 2011-05-11  Ivan Maidanski  <ivmai@mail.ru>
974
975         * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
976         spaces at EOLn.
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
982         macro.
983
984 2011-05-10  Ivan Maidanski  <ivmai@mail.ru>
985
986         * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
987         comment.
988         * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
989         list_atomic.c.
990         * tests/Makefile.am: Remove trailing spaces at EOLn.
991         * tests/Makefile.in: Regenerate.
992
993 2011-05-10  Ivan Maidanski  <ivmai@mail.ru>
994
995         * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
996         unless undefined.
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.
1004
1005 2011-04-22  Ivan Maidanski  <ivmai@mail.ru>
1006
1007         * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
1008         asm; remove redundant trailing ';'.
1009
1010 2011-04-11  Ivan Maidanski  <ivmai@mail.ru> (really Jim Meyering)
1011
1012         * doc/README.txt: Remove doubled words in comments.
1013
1014 2011-03-18  Ivan Maidanski  <ivmai@mail.ru>
1015
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.
1018
1019 2011-03-13  Ivan Maidanski  <ivmai@mail.ru>
1020
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):
1026         Ditto.
1027
1028 2011-02-19  Ivan Maidanski  <ivmai@mail.ru>
1029
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.
1035
1036 2011-02-19  Ivan Maidanski  <ivmai@mail.ru>
1037
1038         * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
1039         AO_USE_NANOSLEEP for NaCl.
1040
1041 2011-02-19  Ivan Maidanski  <ivmai@mail.ru>
1042
1043         * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
1044         automake-1.11.1 and libtool-2.4).
1045         * configure: Ditto.
1046
1047 2011-02-09  Ivan Maidanski  <ivmai@mail.ru>
1048
1049         * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
1050         macros.
1051         * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
1052         AO_USE_NO_SIGNALS.
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
1057         AO_USE_NANOSLEEP.
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.
1062
1063 2011-01-07  Ivan Maidanski  <ivmai@mail.ru>
1064
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.
1074
1075 2010-11-23  Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
1076
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.
1081
1082 2010-09-15  Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
1083
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
1087         included.
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.
1091
1092 2010-08-14  Ivan Maidanski <ivmai@mail.ru>
1093
1094         * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
1095         automake-1.11.1 and libtool-2.2.8).
1096         * configure: Ditto.
1097
1098 2010-08-14  Ivan Maidanski <ivmai@mail.ru>
1099
1100         * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
1101         with ANSI C one.
1102
1103 2010-05-30  Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
1104
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.
1111
1112 2010-05-22  Ivan Maidanski <ivmai@mail.ru>
1113
1114         * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
1115         Add "gcc/avr32.h".
1116         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1117
1118 2010-05-21  Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
1119
1120         * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
1121         * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
1122
1123 2010-04-29  Ivan Maidanski <ivmai@mail.ru>
1124
1125         * doc/README_malloc.txt: Fix a typo.
1126         * doc/README_stack.txt: Ditto.
1127
1128 2010-02-25  Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
1129
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.
1136
1137 2010-02-19  Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
1138
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):
1142         Ditto.
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).
1147
1148 2010-02-18  Ivan Maidanski <ivmai@mail.ru>
1149
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+.
1158
1159 2010-02-17  Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
1160
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.
1170
1171 2010-02-04  Ivan Maidanski <ivmai@mail.ru>
1172
1173         * doc/Makefile.in: Regenerate.
1174
1175 2010-02-04  Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
1176
1177         * doc/Makefile.am: Remove duplicate file in the list.
1178
1179 2010-02-03  Ivan Maidanski <ivmai@mail.ru>
1180
1181         * ChangeLog: Fix some typos.
1182
1183 2010-02-03  Ivan Maidanski <ivmai@mail.ru>
1184
1185         * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
1186         Define "i" variable only if used (to suppress a compiler warning).
1187
1188 2010-02-02  Ivan Maidanski <ivmai@mail.ru>
1189
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):
1193         Ditto.
1194         * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
1195         AO_TS_t for oldval.
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).
1201
1202 2010-01-29  Ivan Maidanski <ivmai@mail.ru>
1203
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.
1208         * compile: Ditto.
1209         * config.guess: Ditto.
1210         * config.sub: Ditto.
1211         * configure: Ditto.
1212         * depcomp: Ditto.
1213         * install-sh: Ditto.
1214         * missing: 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.
1222
1223 2009-12-19  Ivan Maidanski <ivmai@mail.ru>
1224
1225         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
1226         AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
1227
1228 2009-12-17  Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
1229
1230         * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
1231
1232 2009-12-04  Ivan Maidanski <ivmai@mail.ru>
1233
1234         * configure.ac, README: Change to version 7.2alpha5.
1235         * configure: Regenerate.
1236
1237 [7.2alpha4]
1238
1239 2009-12-02  Ivan Maidanski <ivmai@mail.ru>
1240
1241         * configure.ac, README: Change to version 7.2alpha4.
1242         * configure: Regenerate.
1243
1244 2009-12-01  Ivan Maidanski <ivmai@mail.ru>
1245
1246         * configure.ac, README: Change to version 1.3alpha1.
1247         * configure: Regenerate.
1248
1249 2009-11-21  Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
1250
1251         * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
1252         values.
1253         * configure: Regenerate.
1254
1255 2009-10-06  Ivan Maidanski <ivmai@mail.ru>
1256
1257         * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
1258         redefinition.
1259
1260 2009-10-05  Ivan Maidanski <ivmai@mail.ru>
1261
1262         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1263
1264 2009-10-05  Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
1265
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.
1269
1270 2009-10-02  Ivan Maidanski <ivmai@mail.ru>
1271
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.
1276
1277 2009-10-01  Ivan Maidanski <ivmai@mail.ru>
1278
1279         * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
1280         automake-1.10.2, autoconf-2.64).
1281         * INSTALL: Ditto.
1282         * Makefile.in: Ditto.
1283         * aclocal.m4: Ditto.
1284         * config.guess: Ditto.
1285         * config.sub: Ditto.
1286         * configure: Ditto.
1287         * depcomp: Ditto.
1288         * install-sh: Ditto.
1289         * missing: 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.
1297
1298 2009-10-01  Ivan Maidanski <ivmai@mail.ru>
1299
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.
1303
1304 2009-09-30  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
1305
1306         * README: Move notes from the hand-edited part of INSTALL which
1307         was overwritten by Automake recently.
1308
1309 2009-09-26  Ivan Maidanski <ivmai@mail.ru>
1310
1311         * aclocal.m4: Regenerate (by autoreconf -vif).
1312         * config.guess: Ditto.
1313         * config.sub: Ditto.
1314         * configure: Ditto.
1315         * INSTALL: 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.
1323
1324 2009-09-25  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
1325
1326         * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
1327
1328 2009-09-16  Ivan Maidanski <ivmai@mail.ru>
1329
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
1382         comment.
1383         * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
1384
1385 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1386         (ivmai123.diff)
1387
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
1397         mbar) for ARMv6+.
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.
1401
1402 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1403         (ivmai122.diff)
1404
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):
1416         Ditto.
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.
1431
1432 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1433         (diff110)
1434
1435         * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
1436         for ARM family).
1437         * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
1438         * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
1439         macro.
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
1454         common32_defs.h.
1455         * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
1456         better CPU (since Interlocked Add and Xchg primitives are available
1457         on any 32-bit CPU).
1458         * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
1459         400 (for i80386).
1460         * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
1461         on x86).
1462         * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
1463
1464 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1465         (diff109_cvs)
1466
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
1470         "AO_".
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
1491         with ANSI C one.
1492
1493 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1494         (diff108_cvs)
1495
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
1510         ASSUME_WINDOWS98.
1511         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
1512         macro.
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).
1537
1538 2009-09-09  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
1539
1540         * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
1541         Renamed to AO_NO_SPARC_V9.
1542
1543 2009-09-01  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
1544
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.
1549
1550 2009-08-12  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
1551         (diff107_cvs, resembling diff78 and diff88_cvs)
1552
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,
1556         Watcom, Sun C.
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).
1566
1567 2009-05-27  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
1568         (diff87_cvs, resembling diff29, diff68, diff78 partly)
1569
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):
1575         Ditto.
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
1588         comment.
1589
1590 2009-02-24  Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
1591
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.
1596
1597 2008-11-10  Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
1598
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.
1604
1605 2008-11-06  Hans Boehm <Hans.Boehm@hp.com>
1606
1607         * INSTALL: Add some platform-specific documentation.
1608         * src/Makefile.msft: Fix copyright notice.
1609
1610 2008-10-21  Hans Boehm <Hans.Boehm@hp.com>  (really Ivan Maidanski)
1611
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.
1630
1631 2008-10-20  Hans Boehm <Hans.Boehm@hp.com>  (really Andrew Agno)
1632
1633         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
1634         fix return type.
1635
1636 2008-08-21  Hans Boehm <Hans.Boehm@hp.com>
1637
1638         * config.guess, config.sub, configure: Regenerate/replace.
1639         Use autoconf 2.61, automake 1.9.6.
1640
1641 2008-08-19  Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
1642
1643         * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
1644         instruction.
1645
1646 2008-08-19  Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
1647
1648         * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
1649
1650 2008-07-24  Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
1651
1652         * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
1653         Add parentheses around addr arg for various functions.
1654
1655 2008-07-18  Hans Boehm <Hans.Boehm@hp.com>
1656
1657         * src/atomic_ops/sysdeps/gcc/powerpc.h:
1658         Add const to first parameter of load calls (forgot one).
1659
1660 2008-07-18  Hans Boehm <Hans.Boehm@hp.com>
1661
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.
1684
1685 2008-07-10  Hans Boehm <Hans.Boehm@hp.com>
1686
1687         * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
1688         AO_or_full, and let it be autogenerated instead.
1689
1690 2008-07-03  Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
1691
1692         * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
1693         fixing a merge accident.
1694
1695 2008-05-30  Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
1696         contributors)
1697
1698         * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
1699         Regenerate.
1700
1701 2008-05-30  Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
1702         contributors)
1703
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.
1712
1713 2008-02-11  Hans Boehm <Hans.Boehm@hp.com>
1714            (Really Ian Wienand & Debian maintainers)
1715
1716         * src/atomic_ops/sysdeps/gcc/x86.h
1717         (AO_compare_double_and_swap_double_full): Correctly account for
1718         ebx usage with PIC.
1719
1720 2008-01-09  Hans Boehm <Hans.Boehm@hp.com>
1721
1722         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
1723         double_ptr_storage default to long long; define everywhere.
1724
1725 2008-01-08  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
1726
1727         * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
1728         compare_double_and_swap_double.
1729
1730 2008-01-06  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
1731
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.
1741
1742 2008-01-03  Hans Boehm <Hans.Boehm@hp.com>
1743         (Merge from separate atomic_ops tree)
1744
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
1748         data dependencies.
1749
1750 2008-01-02  Hans Boehm <Hans.Boehm@hp.com>
1751
1752         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
1753         %X1 modifier to support indexed addressing.
1754
1755 2007-07-23  Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
1756
1757         * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
1758         for VC++6.
1759
1760 2007-07-05  Andreas Tobler  <a.tobler@schweiz.org>
1761
1762         * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
1763         powerpc.h.
1764
1765 2007-06-26  Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
1766
1767         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
1768         64-bit version.
1769
1770 2007-06-13  Hans Boehm <Hans.Boehm@hp.com>
1771
1772         * src/atomic_ops.h: include stddef.h
1773
1774 2007-06-06  Hans Boehm <Hans.Boehm@hp.com>
1775
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.
1785
1786 2007-05-17  Hans Boehm <Hans.Boehm@hp.com>
1787
1788         * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
1789         Add cast for return.
1790
1791 2007-05-14  Hans Boehm <Hans.Boehm@hp.com>
1792
1793         * doc/README.txt: Update to reflect C++0x effort.
1794
1795 2007-05-07  Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
1796
1797         * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
1798         is present.
1799         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
1800         oldval type.
1801
1802 2006-11-09  Earl Chew (Agilent)
1803
1804         * msftc/x86.h: Follow Microsoft documentation and include
1805         windows.h.
1806
1807 [1.2 release]
1808
1809 2006-07-11  Hans Boehm <Hans.Boehm@hp.com>
1810
1811         * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
1812
1813 2006-03-28  Earl Chew (Agilent)
1814
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.
1824
1825 2006-11-13  Hans Boehm <Hans.Boehm@hp.com>
1826
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.
1829
1830 2005-11-04  Hans Boehm <Hans.Boehm@hp.com>
1831
1832         * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1833         all_acquire_release_volatile.h, instead of just the pointer-sized
1834         version.
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.
1838
1839 [1.1 release]
1840
1841 2005-09-27  Hans Boehm <Hans.Boehm@hp.com>
1842
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.
1849
1850 2005-09-16  Hans Boehm <Hans.Boehm@hp.com>
1851
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.)
1855
1856 2005-08-01  Hans Boehm <Hans.Boehm@hp.com>
1857
1858         * src/atomic_ops/Makefile.am: Change function naming from "byte" to
1859         "char" (again).
1860
1861 [1.0 release]
1862
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
1868         a multiprocessor).
1869
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.
1873
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().
1877
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.
1881         Don't use libtool.
1882
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.
1886
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.
1890
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).
1894
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.
1899
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.
1904
1905 2004-07-02  Ranko Zivojnovic
1906         Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
1907
1908 2004-06 Hans Boehm <Hans.Boehm@hp.com>
1909         Start to add atomic_ops primitives for different sized data.
1910
1911 2003-12-18  Hans Boehm  <Hans.Boehm@hp.com>
1912
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.
1916
1917 2003-12-17  Hans Boehm  <Hans.Boehm@hp.com>
1918
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.
1924
1925 2003-12-09  Hans Boehm  <Hans.Boehm@hp.com>
1926
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.
1933
1934 2003-12-08  Carlos O'Donell  <carlos@baldric.uwo.ca>
1935
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.
1939
1940
1941 Started sometime after version 0.4 release.  Currently the format is
1942 informal.  Eventually should become more GNU-like.