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