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