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