1 2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
2 * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
3 Renamed to AO_NO_SPARC_V9.
5 2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
6 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
7 AO_TS_VAL_t for "oldval" (for 64-bit support).
8 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
9 New function implemented.
11 2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
12 (diff107_cvs, resembling diff78 and diff88_cvs)
14 * src/atomic_ops/sysdeps/sunc/x86.h: New file.
15 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
16 * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
18 * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
19 implementation for VC++ v8+ (include <intrin.h> before it unless
20 WinCE target); use asm-based barrier implementation for Borland,
21 DigitalMars and Watcom.
22 * src/atomic_ops.h: Fix comment (for x86_64).
23 * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
24 headers for Sun C (if not AO_USE_PTHREAD_DEFS).
25 * src/atomic_ops.h: Include VC-specific arch headers for Borland,
26 DigitalMars and Watcom (Win32 target only).
28 2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
29 (diff87_cvs, resembling diff29, diff68, diff78 partly)
30 * doc/README.txt: Remove outdated info about Windows support.
31 * src/atomic_ops/generalize.h (AO_nop_full): Replace
32 K&R-style function definition with ANSI C one.
33 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
34 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
36 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
37 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
38 * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
39 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
40 * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
41 * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
42 * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
43 * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
44 * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
45 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
46 * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
47 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
50 2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
51 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
52 update modifiers to asms, refine clobbers to "cr0", use
53 cr0 instead of cr7, add explicit AO_fetch_and_add,
54 add UNTESTED 64 bit support.
56 2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
57 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
58 AO_compare_and_swap value differently, add
59 AO_compare_double_and_swap_double, some indentation fixes.
60 * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
61 robust and minimize clobbers, Add AO_compare_double_and_swap_double.
63 2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
64 * INSTALL: Add some platform-specific documentation.
65 * src/Makefile.msft: Fix copyright notice.
67 2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
68 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
69 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
70 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
71 * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
72 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
73 * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
74 * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
75 * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
76 * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
77 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
78 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
79 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
80 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
81 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
82 * src/atomic_ops.c: Fix comments.
83 * src/atomic_ops.h: Fix comments.
84 * src/atomic_ops_stack.c: Fix comments.
85 * src/atomic_ops_stack.h: Fix comments.
87 2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
88 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
91 2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
92 * config.guess, config.sub, configure: Regenerate/replace.
93 Use autoconf 2.61, automake 1.9.6.
95 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
96 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
99 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
100 * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
102 2008-07-24 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
103 * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
104 Add parentheses around addr arg for various functions.
106 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
107 * src/atomic_ops/sysdeps/gcc/powerpc.h:
108 Add const to first parameter of load calls (forgot one).
110 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
111 * doc/README.txt, src/atomic_ops/generalize.h,
112 src/atomic_ops/generalize-small.template,
113 src/atomic_ops/generalize-small.h,
114 src/atomic_ops/sysdeps/acquire_release_volatile.h,
115 src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
116 src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
117 src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
118 src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
119 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
120 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
121 src/atomic_ops/sysdeps/ao_t_is_int.h,
122 src/atomic_ops/sysdeps/atomic_load_store.h,
123 src/atomic_ops/sysdeps/char_atomic_load_store.h,
124 src/atomic_ops/sysdeps/int_atomic_load_store.h,
125 src/atomic_ops/sysdeps/short_atomic_load_store.h,
126 src/atomic_ops/sysdeps/generic_pthread.h,
127 src/atomic_ops/sysdeps/read_ordered.h,
128 src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
129 src/atomic_ops/sysdeps/gcc/arm.h,
130 src/atomic_ops/sysdeps/icc/ia64.h,
131 src/atomic_ops/sysdeps/ibmc/powerpc.h:
132 Add const to first parameter of load calls.
134 2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
135 * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
136 AO_or_full, and let it be autogenerated instead.
138 2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
139 * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
140 fixing a merge accident.
142 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
144 * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
147 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
149 * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
150 src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
151 * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
152 on char, align AO_t. Add cas, or.
153 * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
154 * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
155 * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
156 tests/Makefile.in: Regenerate.
158 2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
159 (Really Ian Wienand & Debian maintainers)
160 * src/atomic_ops/sysdeps/gcc/x86.h
161 (AO_compare_double_and_swap_double_full): Correctly account for
164 2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
165 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
166 double_ptr_storage default to long long; define everywhere.
168 2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
169 * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
170 compare_double_and_swap_double.
172 2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
173 * src/atomic_ops/generalize.h: Add test_and_set generalizations,
174 Add AO_double_compare_and_swap generalizations.
175 * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
176 * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
177 * src/atomic_ops/sysdeps/gcc/x86.h,
178 src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
179 compare_double_and_swap_double, commented out for msftc.
180 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add
181 double_ptr_storage field.
183 2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
184 (Merge from separate atomic_ops tree)
185 * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
186 double-width cas, and fix its implementation.
187 * doc/README.txt: Clarify use of _full. Add more warnings about
190 2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
191 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
192 %X1 modifier to support indexed addressing.
194 2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
195 * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
198 2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
199 * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
202 2007-06-26 Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
203 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
206 2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
207 * src/atomic_ops.h: include stddef.h
209 2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
210 * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
211 * src/atomic_ops.h: Add test for msftc/x86_64.h.
212 * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
213 * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
214 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
215 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
216 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
217 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
218 Replace unsigned long cast with size_t.
220 2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
221 * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
224 2007-05-14 Hans Boehm <Hans.Boehm@hp.com>
225 doc/README.txt: Update to reflect C++0x effort.
227 2007-05-07 Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
228 * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
230 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
233 2006-11-09 Earl Chew (Agilent)
234 * msftc/x86.h: Follow Microsoft documentation and include
239 2006-07-11 Hans Boehm <Hans.Boehm@hp.com>
240 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
242 2006-03-28 Earl Chew (Agilent)
243 * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
244 * src/atomic_ops/sysdeps/msftc/x86.h:
245 Use new intrinsics available in MSVC 2003 and MSVC 2005.
246 Use inline assembler to generate mfence and byte sized xchg
247 Use correct prototype for InterlockedCompareExchange.
248 * src/atomic_ops.h: Add test for __PPC__ .
249 * tests/run_parallel.inc: Add simple VxWorks support.
250 * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
251 to silence compiler warnings.
253 2006-1-13 Hans Boehm <Hans.Boehm@hp.com>
254 *src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
255 *src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
257 2005-11-4 Hans Boehm <Hans.Boehm@hp.com>
258 *src/atomic_ops/sysdeps/gcc/ia64.h: Include
259 all_acquire_release_volatile.h, instead of just the pointer-sized
261 *src/atomic_ops/sysdeps/gcc/ia64.h: Include
262 all_acquire_release_volatile.h and all_atomic_load_store.h,
263 instead of just the pointer-sized versions.
267 2005-09-27 Hans Boehm <Hans.Boehm@hp.com>
268 *src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
269 *src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
271 *src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
272 instead of duplicating it.
273 *src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
275 2005-09-16 Hans Boehm <Hans.Boehm@hp.com>
276 *src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
277 definition with one that might actually work. (Thanks to Kazu
278 Hirata and Paul Brook.)
280 2005-08-01 Hans Boehm <Hans.Boehm@hp.com>
281 *src/atomic_ops/Makefile.am: Change function naming from "byte" to
286 2005-03-21 Hans Boehm <Hans.Boehm@hp.com>
287 Fix various acquire_release_volatile.h files to reflect the fact
288 that both icc and gcc seem to reorder ordinary memory accesses around
289 volatile accesses early in the compilation. Modify the acquire
290 release test to catch this problem (with high probablity, and only on
293 2005-03 Hans Boehm <Hans.Boehm@hp.com>
294 Fixes for recently introduced bugs. Update x86 and x86-64 assembly
295 syntax to deal with complaints by some recent gcc versions.
297 2005-02 Hans Boehm <Hans.Boehm@hp.com>
298 Added libatomic_ops_gpl library with support for mostly
299 lock-free stack and malloc().
301 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
302 Hans Boehm <Hans.Boehm@hp.com>
303 Use autoconf, automake, starting with code from Debian package.
306 2005-01 Hans Boehm <Hans.Boehm@hp.com>
307 * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
308 Change most platforms to use byte-wide test-and-set locations.
310 2005-01 Hans Boehm <Hans.Boehm@hp.com>
311 * ao_t_is_int.h: Add to trivially support int-wide operations
312 on platforms with int-sized pointers.
314 2004-12 Hans Boehm <Hans.Boehm@hp.com>
315 * gcc/powerpc.h: First serious attempt to support PowerPC (with
316 help from Maged Michael and others).
318 2004-12 Hans Boehm <Hans.Boehm@hp.com>
319 * sunc/sparc.[hS]: Added minimal supprt for the Sun SPARC compiler.
320 * atomic_ops_sysdeps.S: Add support for platforms that require
321 out-of-line assmebly code.
323 2004-10 Hans Boehm <Hans.Boehm@hp.com>
324 More work on char, short, int sized data. Add both
325 compare_double_and_swap_double and compare_and_swap_double.
326 Typically each platform will provide at most one of these.
328 2004-07-02 Ranko Zivojnovic
329 Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
331 2004-06 Hans Boehm <Hans.Boehm@hp.com>
332 Start to add atomic_ops primitives for different sized data.
334 2003-12-18 Hans Boehm <Hans.Boehm@hp.com>
335 * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
336 Fix support for ecc on IA64. Remove compiler_barrier workaround
337 for gcc 3.4 and later.
339 2003-12-17 Hans Boehm <Hans.Boehm@hp.com>
340 * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
341 atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
342 Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
343 for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
344 compiler on PA_RISC and IA64.
346 2003-12-09 Hans Boehm <Hans.Boehm@hp.com>
348 * many: Install under "atomic_ops" instead of "ao".
349 Change atomic_ops include file structure. Auxiliary include
350 files are all under include/atomic_ops.
351 Fix (hopefully) "make dist" in atomic_ops distribution.
352 Renamed various types to end in _t, though the old versions
353 are still defined for backward compatibility.
355 2003-12-08 Carlos O'Donell <carlos@baldric.uwo.ca>
357 * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
358 AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
359 helper macros. AO_test_and_set_full uses helper macros.
362 Started sometime after version 0.4 release. Currently the format is
363 informal. Eventually should become more GNU-like.