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