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