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