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