2011-06-03 Ivan Maidanski <ivmai@mail.ru>
[platform/upstream/libatomic_ops.git] / ChangeLog
1 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
2
3         * tests/test_malloc.c (run_one_test): Test AO_malloc() result
4         (if out of memory then print the message and abort).
5         * tests/test_stack.c (add_elements): Ditto.
6
7 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
8
9         * src/atomic_ops/generalize.h (AO_HAVE_or_full): Add missing
10         definition.
11         * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_HAVE_nop_write):
12         Fix macro name.
13         * src/atomic_ops/sysdeps/read_ordered.h (AO_HAVE_nop_read): Ditto.
14         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_store_release):
15         Ditto.
16
17 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
18
19         * src/atomic_ops/generalize-small.template
20         (AO_HAVE_XSIZE_fetch_and_add_full): Add missing definition.
21         * src/atomic_ops/generalize-small.template: Reformat code.
22         * src/atomic_ops/generalize-small.h: Regenerate.
23
24 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
25
26         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Remove
27         blank line between AO_func and AO_HAVE_func definitions.
28         * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
29         * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
30         * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
31         * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
32         * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
33         * src/atomic_ops/sysdeps/ordered.h: Ditto.
34         * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
35         * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
36         * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
37         * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
38         * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
39         * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
40         * src/atomic_ops/sysdeps/gcc/cris.h: Ditto.
41         * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
42         * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
43         * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
44         * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
45         * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
46         * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
47         * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
48         * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
49         * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
50         * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
51         * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
52         * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
53         * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
54         * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
55         * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
56         * src/atomic_ops/sysdeps/sunc/sparc.h: Ditto.
57         * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
58         * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
59         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Reformat
60         comment.
61         * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
62         * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
63         * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
64         * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
65         * src/atomic_ops/sysdeps/ordered.h: Ditto.
66         * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
67         * src/atomic_ops/sysdeps/test_and_set_t_is_char.h: Remove file
68         tail blank lines.
69         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Don't
70         define for ARMv2.
71         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire,
72         AO_test_and_set, AO_compare_and_swap): Merge adjacent definitions.
73         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_store_release):
74         Define.
75         * src/atomic_ops/sysdeps/sunc/sparc.h: Expand all tabs to spaces;
76         remove trailing spaces at EOLn.
77
78 2011-06-02  Ivan Maidanski  <ivmai@mail.ru>
79
80         * tests/test_malloc.c (main): Remove unused "exper_n" local
81         variable.
82         * tests/test_stack.c (run_one_test): Remove unused "aux" local
83         variable.
84
85 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
86
87         * src/atomic_ops/sysdeps/gcc/arm.h
88         (AO_compare_double_and_swap_double,
89         AO_HAVE_compare_double_and_swap_double): Define only starting from
90         ARMv6K.
91         * src/atomic_ops/sysdeps/gcc/arm.h
92         (AO_compare_double_and_swap_double): Fix function name in
93         assembler code; replace while (1) loop with "do-while".
94
95 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
96
97         * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full):
98         Specify "%b0" (instead of "%0") in "xchg" instruction (to
99         workaround a bug in Sun C 5.11).
100         * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
101         Ditto.
102
103 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
104
105         * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
106         Sun C compiler (call "release" variant of AO_store).
107
108 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
109
110         * configure.ac (_PTHREADS): New template (used for NetBSD).
111         * configure.ac (THREADDLLIBS): New macro.
112         * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD,
113         test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS
114         instead of "-lpthread".
115         * configure: Regenerate.
116         * Makefile.in: Ditto.
117         * doc/Makefile.in: Ditto.
118         * src/Makefile.in: Ditto.
119         * src/atomic_ops/Makefile.in: Ditto.
120         * src/atomic_ops/sysdeps/Makefile.in: Ditto.
121         * src/config.h.in: Ditto.
122         * tests/Makefile.in: Ditto.
123
124 2011-05-30  Ivan Maidanski  <ivmai@mail.ru>
125
126         * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not
127         define the corresponding macro.
128         * configure.ac: Don't check for GCC twice.
129         * configure: Regenerate.
130         * tests/test_malloc.c (DEFAULT_NTHREADS): New macro.
131         * tests/test_malloc.c (run_one_test): Refine printed message (in
132         case of HAVE_MMAP).
133         * tests/test_malloc.c (main): Use DEFAULT_NTHREADS.
134         * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer.
135         * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS,
136         OPT_MAP_ANON): New macro.
137         * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as
138         file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON).
139         * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON,
140         GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open()
141         returned value.
142
143 2011-05-11  Ivan Maidanski  <ivmai@mail.ru>
144
145         * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
146         spaces at EOLn.
147         * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and
148         LARGE_OBJ_SIZE, respectively.
149         * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH,
150         LARGE_OBJ_SIZE): Do not define unless undefined.
151         * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST
152         macro.
153
154 2011-05-10  Ivan Maidanski  <ivmai@mail.ru>
155
156         * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
157         comment.
158         * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
159         list_atomic.c.
160         * tests/Makefile.am: Remove trailing spaces at EOLn.
161         * tests/Makefile.in: Regenerate.
162
163 2011-05-10  Ivan Maidanski  <ivmai@mail.ru>
164
165         * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
166         unless undefined.
167         * tests/test_stack.c: Expand all tabs to spaces.
168         * tests/test_atomic_include.h: Ditto.
169         * tests/test_stack.c (main): Free pop'ed elements.
170         * tests/test_atomic_include.h (test_atomic, test_atomic_release,
171         test_atomic_acquire, test_atomic_read, test_atomic_write,
172         test_atomic_full, test_atomic_release_write,
173         test_atomic_acquire_read): Remove prototype.
174
175 2011-04-22  Ivan Maidanski  <ivmai@mail.ru>
176
177         * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
178         asm; remove redundant trailing ';'.
179
180 2011-04-11  Ivan Maidanski  <ivmai@mail.ru> (really Jim Meyering)
181
182         * doc/README.txt: Remove doubled words in comments.
183
184 2011-03-18  Ivan Maidanski  <ivmai@mail.ru>
185
186         * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
187         ARM chips instead of all the currently existing v6+ ones.
188
189 2011-03-13  Ivan Maidanski  <ivmai@mail.ru>
190
191         * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
192         expand all tabs to spaces.
193         * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
194         Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug).
195         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
196         Ditto.
197
198 2011-02-19  Ivan Maidanski  <ivmai@mail.ru>
199
200         * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl.
201         * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in
202         a conditional expression) to prevent a compiler warning.
203         * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove
204         trailing spaces at EOLn.
205
206 2011-02-19  Ivan Maidanski  <ivmai@mail.ru>
207
208         * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
209         AO_USE_NANOSLEEP for NaCl.
210
211 2011-02-19  Ivan Maidanski  <ivmai@mail.ru>
212
213         * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
214         automake-1.11.1 and libtool-2.4).
215         * configure: Ditto.
216
217 2011-02-09  Ivan Maidanski  <ivmai@mail.ru>
218
219         * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
220         macros.
221         * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
222         AO_USE_NO_SIGNALS.
223         * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS.
224         * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP.
225         * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code.
226         * src/atomic_ops.c (AO_pause): Use nanosleep() if
227         AO_USE_NANOSLEEP.
228         * src/atomic_ops.c (all_sigs, initialized,
229         AO_compare_and_swap_emulation,
230         AO_compare_double_and_swap_double_emulation): Use
231         AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS.
232
233 2011-01-07  Ivan Maidanski  <ivmai@mail.ru>
234
235         * src/.cvsignore: Add more auto-generated files.
236         * tests/.cvsignore: Ditto.
237         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store,
238         AO_compare_double_and_swap_double): Reformat code.
239         * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
240         AO_compare_double_and_swap_double): Ditto.
241         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
242         Produce "it eq" instruction only for Thumb mode.
243         * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
244
245 2010-11-23  Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
246
247         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
248         Insert "it eq" just before "strexeq" (required for Thumb-2 mode,
249         ignored in ARM mode).
250         * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
251
252 2010-09-15  Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
253
254         * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__.
255         * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__.
256         * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is
257         included.
258         * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS
259         is defined but emul_cas.h has not been included.
260         * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo.
261
262 2010-08-14  Ivan Maidanski <ivmai@mail.ru>
263
264         * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
265         automake-1.11.1 and libtool-2.2.8).
266         * configure: Ditto.
267
268 2010-08-14  Ivan Maidanski <ivmai@mail.ru>
269
270         * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
271         with ANSI C one.
272
273 2010-05-30  Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
274
275         * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use
276         "register long" (instead of "int") for "ret" variable.
277         * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace
278         with AO_test_and_set_full (same for AO_HAVE_test_and_set).
279         * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full):
280         New function implemented.
281
282 2010-05-22  Ivan Maidanski <ivmai@mail.ru>
283
284         * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
285         Add "gcc/avr32.h".
286         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
287
288 2010-05-21  Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
289
290         * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
291         * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
292
293 2010-04-29  Ivan Maidanski <ivmai@mail.ru>
294
295         * doc/README_malloc.txt: Fix a typo.
296         * doc/README_stack.txt: Ditto.
297
298 2010-02-25  Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
299
300         * .cvsignore: New file.
301         * doc/.cvsignore: Ditto.
302         * src/.cvsignore: Ditto.
303         * src/atomic_ops/.cvsignore: Ditto.
304         * src/atomic_ops/sysdeps/.cvsignore: Ditto.
305         * tests/.cvsignore: Ditto.
306
307 2010-02-19  Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
308
309         * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full):
310         Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN.
311         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
312         Ditto.
313         * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined
314         if GCC v4.2+ or Intel compiler v11.1+ (only for amd64).
315         * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel
316         compiler in GCC compatible mode (only for x86 and amd64).
317
318 2010-02-18  Ivan Maidanski <ivmai@mail.ru>
319
320         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check
321         for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on
322         all x86_64/amd64 chips); remove the comment.
323         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
324         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only
325         if AO_ASM_X64_AVAILABLE.
326         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
327         Use built-in __sync_bool_compare_and_swap() if GCC v4.2+.
328
329 2010-02-17  Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
330
331         * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full,
332         AO_compare_double_and_swap_double_full): Use EAX for the result
333         since cmpxchg clobbers it.
334         * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full,
335         AO_compare_double_and_swap_double_full): Ditto.
336         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full,
337         AO_compare_double_and_swap_double_full): Ditto.
338         * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full,
339         AO_compare_double_and_swap_double_full): Ditto.
340
341 2010-02-04  Ivan Maidanski <ivmai@mail.ru>
342
343         * doc/Makefile.in: Regenerate.
344
345 2010-02-04  Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
346
347         * doc/Makefile.am: Remove duplicate file in the list.
348
349 2010-02-03  Ivan Maidanski <ivmai@mail.ru>
350
351         * ChangeLog: Fix some typos.
352
353 2010-02-03  Ivan Maidanski <ivmai@mail.ru>
354
355         * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
356         Define "i" variable only if used (to suppress a compiler warning).
357
358 2010-02-02  Ivan Maidanski <ivmai@mail.ru>
359
360         * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix
361         "xchg" data size (remove "l" suffix).
362         * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
363         Ditto.
364         * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
365         AO_TS_t for oldval.
366         * src/atomic_ops/sysdeps/sunc/x86.h
367         (AO_compare_double_and_swap_double_full,
368         AO_HAVE_compare_double_and_swap_double_full): Comment out (since
369         not tested, might be wrong, and tickles a bug in some Sun CC
370         versions; besides, __PIC__ macro is never predefined by Sun CC).
371
372 2010-01-29  Ivan Maidanski <ivmai@mail.ru>
373
374         * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b,
375         automake-1.11.1, autoconf-2.65).
376         * Makefile.in: Ditto.
377         * aclocal.m4: Ditto.
378         * compile: Ditto.
379         * config.guess: Ditto.
380         * config.sub: Ditto.
381         * configure: Ditto.
382         * depcomp: Ditto.
383         * install-sh: Ditto.
384         * missing: Ditto.
385         * mkinstalldirs: Ditto.
386         * doc/Makefile.in: Ditto.
387         * src/Makefile.in: Ditto.
388         * src/atomic_ops/Makefile.in: Ditto.
389         * src/atomic_ops/sysdeps/Makefile.in: Ditto.
390         * src/config.h.in: Ditto.
391         * tests/Makefile.in: Ditto.
392
393 2009-12-19  Ivan Maidanski <ivmai@mail.ru>
394
395         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
396         AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
397
398 2009-12-17  Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
399
400         * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
401
402 2009-12-04  Ivan Maidanski <ivmai@mail.ru>
403
404         * configure.ac, README: Change to version 7.2alpha5.
405         * configure: Regenerate.
406
407 [7.2alpha4]
408
409 2009-12-02  Ivan Maidanski <ivmai@mail.ru>
410
411         * configure.ac, README: Change to version 7.2alpha4.
412         * configure: Regenerate.
413
414 2009-12-01  Ivan Maidanski <ivmai@mail.ru>
415
416         * configure.ac, README: Change to version 1.3alpha1.
417         * configure: Regenerate.
418
419 2009-11-21  Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
420
421         * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
422         values.
423         * configure: Regenerate.
424
425 2009-10-06  Ivan Maidanski <ivmai@mail.ru>
426
427         * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
428         redefinition.
429
430 2009-10-05  Ivan Maidanski <ivmai@mail.ru>
431
432         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
433
434 2009-10-05  Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
435
436         * src/atomic_ops/sysdeps/gcc/sh.h: New file.
437         * src/atomic_ops.h: Include gcc/sh.h if __arm__.
438         * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
439
440 2009-10-02  Ivan Maidanski <ivmai@mail.ru>
441
442         * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
443         msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
444         entries; order all entries alphabetically.
445         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
446
447 2009-10-01  Ivan Maidanski <ivmai@mail.ru>
448
449         * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
450         automake-1.10.2, autoconf-2.64).
451         * INSTALL: Ditto.
452         * Makefile.in: Ditto.
453         * aclocal.m4: Ditto.
454         * config.guess: Ditto.
455         * config.sub: Ditto.
456         * configure: Ditto.
457         * depcomp: Ditto.
458         * install-sh: Ditto.
459         * missing: Ditto.
460         * mkinstalldirs: Ditto.
461         * doc/Makefile.in: Ditto.
462         * src/config.h.in: Ditto.
463         * src/Makefile.in: Ditto.
464         * src/atomic_ops/Makefile.in: Ditto.
465         * src/atomic_ops/sysdeps/Makefile.in: Ditto.
466         * tests/Makefile.in: Ditto.
467
468 2009-10-01  Ivan Maidanski <ivmai@mail.ru>
469
470         * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
471         for the preprocessor directives.
472         * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
473
474 2009-09-30  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
475
476         * README: Move notes from the hand-edited part of INSTALL which
477         was overwritten by Automake recently.
478
479 2009-09-26  Ivan Maidanski <ivmai@mail.ru>
480
481         * aclocal.m4: Regenerate (by autoreconf -vif).
482         * config.guess: Ditto.
483         * config.sub: Ditto.
484         * configure: Ditto.
485         * INSTALL: Ditto.
486         * Makefile.in: Ditto.
487         * doc/Makefile.in: Ditto.
488         * src/config.h.in: Ditto.
489         * src/Makefile.in: Ditto.
490         * src/atomic_ops/Makefile.in: Ditto.
491         * src/atomic_ops/sysdeps/Makefile.in: Ditto.
492         * tests/Makefile.in: Ditto.
493
494 2009-09-25  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
495
496         * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
497
498 2009-09-16  Ivan Maidanski <ivmai@mail.ru>
499
500         * ChangeLog: Remove trailing spaces at EOLn.
501         * doc/README.txt: Expand all tabs to spaces; remove trailing
502         spaces at EOLn; remove multiple trailing blank lines.
503         * src/atomic_ops.c: Ditto.
504         * src/atomic_ops.h: Ditto.
505         * src/atomic_ops/generalize-small.h: Ditto.
506         * src/atomic_ops/generalize.h: Ditto.
507         * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
508         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
509         * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
510         * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
511         * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
512         * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
513         * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
514         * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
515         * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
516         * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
517         * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
518         * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
519         * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
520         * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
521         * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
522         * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
523         * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
524         * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
525         * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
526         * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
527         * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
528         * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
529         * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
530         * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
531         * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
532         * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
533         * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
534         * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
535         * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
536         * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
537         * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
538         * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
539         * src/atomic_ops/sysdeps/ordered.h: Ditto.
540         * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
541         * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
542         * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
543         * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
544         * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
545         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
546         * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
547         * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
548         * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
549         * src/atomic_ops_stack.c: Ditto.
550         * src/atomic_ops_stack.h: Ditto.
551         * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
552         comment.
553         * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
554
555 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
556         (ivmai123.diff)
557
558         * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
559         (regarding memory barrier).
560         * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
561         AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
562         * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
563         AO_test_and_set): Replace FIXME with the comment saying it is
564         emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
565         * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
566         using InterlockedCompareExchange() (assuming the latter has a full
567         mbar) for ARMv6+.
568         * src/atomic_ops/sysdeps/msftc/arm.h: Include
569         all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
570         of pre-ARMv6; add the comment.
571
572 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
573         (ivmai122.diff)
574
575         * src/atomic_ops/sysdeps/armcc/arm_v6.h
576         (AO_compare_double_and_swap_double): Replace false/true with 0/1.
577         * src/atomic_ops/sysdeps/gcc/arm.h
578         (AO_compare_double_and_swap_double): Ditto.
579         * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
580         predefined macros (6J, 6ZK, 7A, 7M, 7R).
581         * src/atomic_ops/sysdeps/gcc/arm.h
582         (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
583         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
584         Correct the name (convert from the lower case).
585         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
586         Ditto.
587         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
588         AO_compare_and_swap): Comment out unimplemented code (and the
589         corresponding macros); add FIXME.
590         * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
591         _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
592         pthreads-w32 library); don't include signal.h, sys/time.h,
593         sys/select.h in this case; include windows.h instead.
594         * src/atomic_ops.c (AO_pause): Use Sleep() in case of
595         AO_USE_WIN32_PTHREADS (instead of select()).
596         * src/atomic_ops.c (all_sigs, initialized): Don't define in case
597         of AO_USE_WIN32_PTHREADS.
598         * src/atomic_ops.c (AO_compare_and_swap_emulation,
599         AO_compare_double_and_swap_double_emulation): Don't deal with
600         signals in case of AO_USE_WIN32_PTHREADS.
601
602 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
603         (diff110)
604
605         * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
606         for ARM family).
607         * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
608         * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
609         macro.
610         * src/atomic_ops/sysdeps/msftc/common32_defs.h
611         (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
612         * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
613         declarations to common32_defs.h.
614         * src/atomic_ops/sysdeps/msftc/common32_defs.h
615         (AO_INTERLOCKED_VOLATILE): New macro defined (used by
616         Interlocked-based primitives) for compatibility with older VC++.
617         * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
618         missing <intrin.h> if WinCE target.
619         * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
620         (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
621         * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
622         AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
623         AO_compare_and_swap_full): Move arch-independent primitives to
624         common32_defs.h.
625         * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
626         better CPU (since Interlocked Add and Xchg primitives are available
627         on any 32-bit CPU).
628         * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
629         400 (for i80386).
630         * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
631         on x86).
632         * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
633
634 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
635         (diff109_cvs)
636
637         * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
638         ASSUME_WINDOWS98 with "AO_").
639         * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
640         "AO_".
641         * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
642         K&R-style function definition with ANSI C one.
643         * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
644         Replace AO_TS_SET with its value 0xff (some compilers does not like
645         C enum consts inside inline assembler).
646         * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
647         comment about "missing return value" warning.
648         * src/atomic_ops/sysdeps/msftc/x86.h
649         (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
650         * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
651         _InterlockedCompareExchange() with args and result of PVOID type
652         if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
653         DigitalMars compiler support).
654         * src/atomic_ops/sysdeps/msftc/x86.h
655         (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
656         variables ("val1" is the lowest part of AO_double_t).
657         * src/atomic_ops/sysdeps/msftc/x86.h
658         (AO_compare_double_and_swap_double_full): Rename to
659         AO_double_compare_and_swap_full (as it has 3 args).
660         * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
661         with ANSI C one.
662
663 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
664         (diff108_cvs)
665
666         * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
667         and 32-bit WinChips.
668         * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
669         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
670         K&R-style function definition with ANSI C one.
671         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
672         * src/atomic_ops/sysdeps/gcc/x86_64.h
673         (AO_compare_double_and_swap_double_full): Fix comment.
674         * src/atomic_ops/sysdeps/gcc/x86_64.h
675         (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
676         variables ("val1" is the lowest part of AO_double_t).
677         * src/atomic_ops/sysdeps/msftc/x86_64.h
678         (AO_compare_double_and_swap_double_full): Ditto.
679         * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
680         ASSUME_WINDOWS98.
681         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
682         macro.
683         * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
684         "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
685         x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
686         * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
687         "standard_ao_double_t.h" (same as in x86_64.h for gcc).
688         * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
689         <intrin.h> assuming at least VC++ v8.
690         * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
691         prototypes (since they are always declared in intrin.h).
692         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
693         definition below CAS primitive (to textually group all asm-based
694         primitives together).
695         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
696         Implement for AO_ASM_X64_AVAILABLE case.
697         * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
698         macro (replaced with AO_ASM_X64_AVAILABLE).
699         * src/atomic_ops/sysdeps/msftc/x86_64.h
700         (AO_compare_double_and_swap_double_full): Add intrinsic-based
701         implementation for VC++ v9+.
702         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
703         <xmmintrin.h> (and use "__m128" type) if _WIN64.
704         * src/atomic_ops/sysdeps/standard_ao_double_t.h
705         (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
706         "double_ptr_storage" is defined for all cases).
707
708 2009-09-09  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
709
710         * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
711         Renamed to AO_NO_SPARC_V9.
712
713 2009-09-01  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
714
715         * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
716         AO_TS_VAL_t for "oldval" (for 64-bit support).
717         * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
718         New function implemented.
719
720 2009-08-12  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
721         (diff107_cvs, resembling diff78 and diff88_cvs)
722
723         * src/atomic_ops/sysdeps/sunc/x86.h: New file.
724         * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
725         * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
726         Watcom, Sun C.
727         * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
728         implementation for VC++ v8+ (include <intrin.h> before it unless
729         WinCE target); use asm-based barrier implementation for Borland,
730         DigitalMars and Watcom.
731         * src/atomic_ops.h: Fix comment (for x86_64).
732         * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
733         headers for Sun C (if not AO_USE_PTHREAD_DEFS).
734         * src/atomic_ops.h: Include VC-specific arch headers for Borland,
735         DigitalMars and Watcom (Win32 target only).
736
737 2009-05-27  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
738         (diff87_cvs, resembling diff29, diff68, diff78 partly)
739
740         * doc/README.txt: Remove outdated info about Windows support.
741         * src/atomic_ops/generalize.h (AO_nop_full): Replace
742         K&R-style function definition with ANSI C one.
743         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
744         * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
745         Ditto.
746         * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
747         * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
748         * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
749         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
750         * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
751         * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
752         * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
753         * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
754         * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
755         * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
756         * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
757         * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
758         comment.
759
760 2009-02-24  Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
761
762         * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
763         update modifiers to asms, refine clobbers to "cr0", use
764         cr0 instead of cr7, add explicit AO_fetch_and_add,
765         add UNTESTED 64 bit support.
766
767 2008-11-10  Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
768
769         * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
770         AO_compare_and_swap value differently, add
771         AO_compare_double_and_swap_double, some indentation fixes.
772         * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
773         robust and minimize clobbers, Add AO_compare_double_and_swap_double.
774
775 2008-11-06  Hans Boehm <Hans.Boehm@hp.com>
776
777         * INSTALL: Add some platform-specific documentation.
778         * src/Makefile.msft: Fix copyright notice.
779
780 2008-10-21  Hans Boehm <Hans.Boehm@hp.com>  (really Ivan Maidanski)
781
782         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
783         * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
784         * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
785         * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
786         * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
787         * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
788         * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
789         * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
790         * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
791         * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
792         * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
793         * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
794         * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
795         * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
796         * src/atomic_ops.c: Fix comments.
797         * src/atomic_ops.h: Fix comments.
798         * src/atomic_ops_stack.c: Fix comments.
799         * src/atomic_ops_stack.h: Fix comments.
800
801 2008-10-20  Hans Boehm <Hans.Boehm@hp.com>  (really Andrew Agno)
802
803         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
804         fix return type.
805
806 2008-08-21  Hans Boehm <Hans.Boehm@hp.com>
807
808         * config.guess, config.sub, configure: Regenerate/replace.
809         Use autoconf 2.61, automake 1.9.6.
810
811 2008-08-19  Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
812
813         * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
814         instruction.
815
816 2008-08-19  Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
817
818         * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
819
820 2008-07-24  Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
821
822         * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
823         Add parentheses around addr arg for various functions.
824
825 2008-07-18  Hans Boehm <Hans.Boehm@hp.com>
826
827         * src/atomic_ops/sysdeps/gcc/powerpc.h:
828         Add const to first parameter of load calls (forgot one).
829
830 2008-07-18  Hans Boehm <Hans.Boehm@hp.com>
831
832         * doc/README.txt, src/atomic_ops/generalize.h,
833         src/atomic_ops/generalize-small.template,
834         src/atomic_ops/generalize-small.h,
835         src/atomic_ops/sysdeps/acquire_release_volatile.h,
836         src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
837         src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
838         src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
839         src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
840         src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
841         src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
842         src/atomic_ops/sysdeps/ao_t_is_int.h,
843         src/atomic_ops/sysdeps/atomic_load_store.h,
844         src/atomic_ops/sysdeps/char_atomic_load_store.h,
845         src/atomic_ops/sysdeps/int_atomic_load_store.h,
846         src/atomic_ops/sysdeps/short_atomic_load_store.h,
847         src/atomic_ops/sysdeps/generic_pthread.h,
848         src/atomic_ops/sysdeps/read_ordered.h,
849         src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
850         src/atomic_ops/sysdeps/gcc/arm.h,
851         src/atomic_ops/sysdeps/icc/ia64.h,
852         src/atomic_ops/sysdeps/ibmc/powerpc.h:
853         Add const to first parameter of load calls.
854
855 2008-07-10  Hans Boehm <Hans.Boehm@hp.com>
856
857         * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
858         AO_or_full, and let it be autogenerated instead.
859
860 2008-07-03  Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
861
862         * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
863         fixing a merge accident.
864
865 2008-05-30  Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
866         contributors)
867
868         * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
869         Regenerate.
870
871 2008-05-30  Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
872         contributors)
873
874         * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
875         src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
876         * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
877         on char, align AO_t.  Add cas, or.
878         * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
879         * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
880         * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
881         tests/Makefile.in: Regenerate.
882
883 2008-02-11  Hans Boehm <Hans.Boehm@hp.com>
884            (Really Ian Wienand & Debian maintainers)
885
886         * src/atomic_ops/sysdeps/gcc/x86.h
887         (AO_compare_double_and_swap_double_full): Correctly account for
888         ebx usage with PIC.
889
890 2008-01-09  Hans Boehm <Hans.Boehm@hp.com>
891
892         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
893         double_ptr_storage default to long long; define everywhere.
894
895 2008-01-08  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
896
897         * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
898         compare_double_and_swap_double.
899
900 2008-01-06  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
901
902         * src/atomic_ops/generalize.h: Add test_and_set generalizations,
903         Add AO_double_compare_and_swap generalizations.
904         * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
905         * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
906         * src/atomic_ops/sysdeps/gcc/x86.h,
907         src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
908         compare_double_and_swap_double, commented out for msftc.
909         * src/atomic_ops/sysdeps/standard_ao_double_t.h:  Add
910         double_ptr_storage field.
911
912 2008-01-03  Hans Boehm <Hans.Boehm@hp.com>
913         (Merge from separate atomic_ops tree)
914
915         * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
916         double-width cas, and fix its implementation.
917         * doc/README.txt: Clarify use of _full.  Add more warnings about
918         data dependencies.
919
920 2008-01-02  Hans Boehm <Hans.Boehm@hp.com>
921
922         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
923         %X1 modifier to support indexed addressing.
924
925 2007-07-23  Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
926
927         * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
928         for VC++6.
929
930 2007-07-05  Andreas Tobler  <a.tobler@schweiz.org>
931
932         * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
933         powerpc.h.
934
935 2007-06-26  Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
936
937         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
938         64-bit version.
939
940 2007-06-13  Hans Boehm <Hans.Boehm@hp.com>
941
942         * src/atomic_ops.h: include stddef.h
943
944 2007-06-06  Hans Boehm <Hans.Boehm@hp.com>
945
946         * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
947         * src/atomic_ops.h: Add test for msftc/x86_64.h.
948         * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
949         * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
950         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
951         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
952         src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
953         src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
954         Replace unsigned long cast with size_t.
955
956 2007-05-17  Hans Boehm <Hans.Boehm@hp.com>
957
958         * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
959         Add cast for return.
960
961 2007-05-14  Hans Boehm <Hans.Boehm@hp.com>
962
963         * doc/README.txt: Update to reflect C++0x effort.
964
965 2007-05-07  Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
966
967         * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
968         is present.
969         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
970         oldval type.
971
972 2006-11-09  Earl Chew (Agilent)
973
974         * msftc/x86.h: Follow Microsoft documentation and include
975         windows.h.
976
977 [1.2 release]
978
979 2006-07-11  Hans Boehm <Hans.Boehm@hp.com>
980
981         * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
982
983 2006-03-28  Earl Chew (Agilent)
984
985         * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
986         * src/atomic_ops/sysdeps/msftc/x86.h:
987         Use new intrinsics available in MSVC 2003 and MSVC 2005.
988         Use inline assembler to generate mfence and byte sized xchg
989         Use correct prototype for InterlockedCompareExchange.
990         * src/atomic_ops.h: Add test for __PPC__ .
991         * tests/run_parallel.inc: Add simple VxWorks support.
992         * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
993         to silence compiler warnings.
994
995 2006-11-13  Hans Boehm <Hans.Boehm@hp.com>
996
997         * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
998         * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
999
1000 2005-11-04  Hans Boehm <Hans.Boehm@hp.com>
1001
1002         * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1003         all_acquire_release_volatile.h, instead of just the pointer-sized
1004         version.
1005         * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1006         all_acquire_release_volatile.h and all_atomic_load_store.h,
1007         instead of just the pointer-sized versions.
1008
1009 [1.1 release]
1010
1011 2005-09-27  Hans Boehm <Hans.Boehm@hp.com>
1012
1013         * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
1014         * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
1015         ordered_except_wr.h.
1016         * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
1017         instead of duplicating it.
1018         * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
1019
1020 2005-09-16  Hans Boehm <Hans.Boehm@hp.com>
1021
1022         * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
1023         definition with one that might actually work.  (Thanks to Kazu
1024         Hirata and Paul Brook.)
1025
1026 2005-08-01  Hans Boehm <Hans.Boehm@hp.com>
1027
1028         * src/atomic_ops/Makefile.am: Change function naming from "byte" to
1029         "char" (again).
1030
1031 [1.0 release]
1032
1033 2005-03-21  Hans Boehm <Hans.Boehm@hp.com>
1034         Fix various acquire_release_volatile.h files to reflect the fact
1035         that both icc and gcc seem to reorder ordinary memory accesses around
1036         volatile accesses early in the compilation. Modify the acquire
1037         release test to catch this problem (with high probability, and only on
1038         a multiprocessor).
1039
1040 2005-03 Hans Boehm <Hans.Boehm@hp.com>
1041         Fixes for recently introduced bugs.  Update x86 and x86-64 assembly
1042         syntax to deal with complaints by some recent gcc versions.
1043
1044 2005-02 Hans Boehm <Hans.Boehm@hp.com>
1045         Added libatomic_ops_gpl library with support for mostly
1046         lock-free stack and malloc().
1047
1048 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
1049         Hans Boehm <Hans.Boehm@hp.com>
1050         Use autoconf, automake, starting with code from Debian package.
1051         Don't use libtool.
1052
1053 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1054         * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
1055         Change most platforms to use byte-wide test-and-set locations.
1056
1057 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1058         * ao_t_is_int.h: Add to trivially support int-wide operations
1059         on platforms with int-sized pointers.
1060
1061 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1062         * gcc/powerpc.h: First serious attempt to support PowerPC (with
1063         help from Maged Michael and others).
1064
1065 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1066         * sunc/sparc.[hS]: Added minimal support for the Sun SPARC compiler.
1067         * atomic_ops_sysdeps.S: Add support for platforms that require
1068         out-of-line assembly code.
1069
1070 2004-10 Hans Boehm <Hans.Boehm@hp.com>
1071         More work on char, short, int sized data.  Add both
1072         compare_double_and_swap_double and compare_and_swap_double.
1073         Typically each platform will provide at most one of these.
1074
1075 2004-07-02  Ranko Zivojnovic
1076         Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
1077
1078 2004-06 Hans Boehm <Hans.Boehm@hp.com>
1079         Start to add atomic_ops primitives for different sized data.
1080
1081 2003-12-18  Hans Boehm  <Hans.Boehm@hp.com>
1082
1083         * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
1084         Fix support for ecc on IA64.  Remove compiler_barrier workaround
1085         for gcc 3.4 and later.
1086
1087 2003-12-17  Hans Boehm  <Hans.Boehm@hp.com>
1088
1089         * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
1090         atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
1091         Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
1092         for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
1093         compiler on PA_RISC and IA64.
1094
1095 2003-12-09  Hans Boehm  <Hans.Boehm@hp.com>
1096
1097         * many: Install under "atomic_ops" instead of "ao".
1098         Change atomic_ops include file structure.  Auxiliary include
1099         files are all under include/atomic_ops.
1100         Fix (hopefully) "make dist" in atomic_ops distribution.
1101         Renamed various types to end in _t, though the old versions
1102         are still defined for backward compatibility.
1103
1104 2003-12-08  Carlos O'Donell  <carlos@baldric.uwo.ca>
1105
1106         * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
1107         AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
1108         helper macros. AO_test_and_set_full uses helper macros.
1109
1110
1111 Started sometime after version 0.4 release.  Currently the format is
1112 informal.  Eventually should become more GNU-like.