3 2009-12-01 Ivan Maidanski <ivmai@mail.ru>
5 * configure.ac, README: Change to version 1.3alpha1.
6 * configure: Regenerate.
8 2009-11-21 Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
10 * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
12 * configure: Regenerate.
14 2009-10-06 Ivan Maidanski <ivmai@mail.ru>
16 * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
19 2009-10-05 Ivan Maidanski <ivmai@mail.ru>
21 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
23 2009-10-05 Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
25 * src/atomic_ops/sysdeps/gcc/sh.h: New file.
26 * src/atomic_ops.h: Include gcc/sh.h if __arm__.
27 * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
29 2009-10-02 Ivan Maidanski <ivmai@mail.ru>
31 * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
32 msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
33 entries; order all entries alphabetically.
34 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
36 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
38 * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
39 automake-1.10.2, autoconf-2.64).
43 * config.guess: Ditto.
49 * mkinstalldirs: Ditto.
50 * doc/Makefile.in: Ditto.
51 * src/config.h.in: Ditto.
52 * src/Makefile.in: Ditto.
53 * src/atomic_ops/Makefile.in: Ditto.
54 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
55 * tests/Makefile.in: Ditto.
57 2009-10-01 Ivan Maidanski <ivmai@mail.ru>
59 * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
60 for the preprocessor directives.
61 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
63 2009-09-30 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
65 * README: Move notes from the hand-edited part of INSTALL which
66 was overwritten by Automake recently.
68 2009-09-26 Ivan Maidanski <ivmai@mail.ru>
70 * aclocal.m4: Regenerate (by autoreconf -vif).
71 * config.guess: Ditto.
76 * doc/Makefile.in: Ditto.
77 * src/config.h.in: Ditto.
78 * src/Makefile.in: Ditto.
79 * src/atomic_ops/Makefile.in: Ditto.
80 * src/atomic_ops/sysdeps/Makefile.in: Ditto.
81 * tests/Makefile.in: Ditto.
83 2009-09-25 Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
85 * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
87 2009-09-16 Ivan Maidanski <ivmai@mail.ru>
89 * ChangeLog: Remove trailing spaces at EOLn.
90 * doc/README.txt: Expand all tabs to spaces; remove trailing
91 spaces at EOLn; remove multiple trailing blank lines.
92 * src/atomic_ops.c: Ditto.
93 * src/atomic_ops.h: Ditto.
94 * src/atomic_ops/generalize-small.h: Ditto.
95 * src/atomic_ops/generalize.h: Ditto.
96 * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
97 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
98 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
99 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
100 * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
101 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
102 * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
103 * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
104 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
105 * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
106 * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
107 * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
108 * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
109 * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
110 * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
111 * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
112 * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
113 * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
114 * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
115 * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
116 * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
117 * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
118 * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
119 * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
120 * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
121 * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
122 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
123 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
124 * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
125 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
126 * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
127 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
128 * src/atomic_ops/sysdeps/ordered.h: Ditto.
129 * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
130 * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
131 * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
132 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
133 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
134 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
135 * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
136 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
137 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
138 * src/atomic_ops_stack.c: Ditto.
139 * src/atomic_ops_stack.h: Ditto.
140 * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
142 * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
144 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
147 * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
148 (regarding memory barrier).
149 * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
150 AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
151 * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
152 AO_test_and_set): Replace FIXME with the comment saying it is
153 emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
154 * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
155 using InterlockedCompareExchange() (assuming the latter has a full
157 * src/atomic_ops/sysdeps/msftc/arm.h: Include
158 all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
159 of pre-ARMv6; add the comment.
161 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
164 * src/atomic_ops/sysdeps/armcc/arm_v6.h
165 (AO_compare_double_and_swap_double): Replace false/true with 0/1.
166 * src/atomic_ops/sysdeps/gcc/arm.h
167 (AO_compare_double_and_swap_double): Ditto.
168 * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
169 predefined macros (6J, 6ZK, 7A, 7M, 7R).
170 * src/atomic_ops/sysdeps/gcc/arm.h
171 (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
172 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
173 Correct the name (convert from the lower case).
174 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
176 * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
177 AO_compare_and_swap): Comment out unimplemented code (and the
178 corresponding macros); add FIXME.
179 * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
180 _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
181 pthreads-w32 library); don't include signal.h, sys/time.h,
182 sys/select.h in this case; include windows.h instead.
183 * src/atomic_ops.c (AO_pause): Use Sleep() in case of
184 AO_USE_WIN32_PTHREADS (instead of select()).
185 * src/atomic_ops.c (all_sigs, initialized): Don't define in case
186 of AO_USE_WIN32_PTHREADS.
187 * src/atomic_ops.c (AO_compare_and_swap_emulation,
188 AO_compare_double_and_swap_double_emulation): Don't deal with
189 signals in case of AO_USE_WIN32_PTHREADS.
191 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
194 * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
196 * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
197 * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
199 * src/atomic_ops/sysdeps/msftc/common32_defs.h
200 (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
201 * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
202 declarations to common32_defs.h.
203 * src/atomic_ops/sysdeps/msftc/common32_defs.h
204 (AO_INTERLOCKED_VOLATILE): New macro defined (used by
205 Interlocked-based primitives) for compatibility with older VC++.
206 * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
207 missing <intrin.h> if WinCE target.
208 * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
209 (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
210 * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
211 AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
212 AO_compare_and_swap_full): Move arch-independent primitives to
214 * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
215 better CPU (since Interlocked Add and Xchg primitives are available
217 * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
219 * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
221 * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
223 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
226 * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
227 ASSUME_WINDOWS98 with "AO_").
228 * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
230 * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
231 K&R-style function definition with ANSI C one.
232 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
233 Replace AO_TS_SET with its value 0xff (some compilers does not like
234 C enum consts inside inline assembler).
235 * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
236 comment about "missing return value" warning.
237 * src/atomic_ops/sysdeps/msftc/x86.h
238 (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
239 * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
240 _InterlockedCompareExchange() with args and result of PVOID type
241 if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
242 DigitalMars compiler support).
243 * src/atomic_ops/sysdeps/msftc/x86.h
244 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
245 variables ("val1" is the lowest part of AO_double_t).
246 * src/atomic_ops/sysdeps/msftc/x86.h
247 (AO_compare_double_and_swap_double_full): Rename to
248 AO_double_compare_and_swap_full (as it has 3 args).
249 * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
252 2009-09-10 Ivan Maidanski <ivmai@mail.ru>
255 * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
257 * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
258 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
259 K&R-style function definition with ANSI C one.
260 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
261 * src/atomic_ops/sysdeps/gcc/x86_64.h
262 (AO_compare_double_and_swap_double_full): Fix comment.
263 * src/atomic_ops/sysdeps/gcc/x86_64.h
264 (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
265 variables ("val1" is the lowest part of AO_double_t).
266 * src/atomic_ops/sysdeps/msftc/x86_64.h
267 (AO_compare_double_and_swap_double_full): Ditto.
268 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
270 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
272 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
273 "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
274 x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
275 * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
276 "standard_ao_double_t.h" (same as in x86_64.h for gcc).
277 * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
278 <intrin.h> assuming at least VC++ v8.
279 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
280 prototypes (since they are always declared in intrin.h).
281 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
282 definition below CAS primitive (to textually group all asm-based
283 primitives together).
284 * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
285 Implement for AO_ASM_X64_AVAILABLE case.
286 * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
287 macro (replaced with AO_ASM_X64_AVAILABLE).
288 * src/atomic_ops/sysdeps/msftc/x86_64.h
289 (AO_compare_double_and_swap_double_full): Add intrinsic-based
290 implementation for VC++ v9+.
291 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
292 <xmmintrin.h> (and use "__m128" type) if _WIN64.
293 * src/atomic_ops/sysdeps/standard_ao_double_t.h
294 (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
295 "double_ptr_storage" is defined for all cases).
297 2009-09-09 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
299 * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
300 Renamed to AO_NO_SPARC_V9.
302 2009-09-01 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
304 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
305 AO_TS_VAL_t for "oldval" (for 64-bit support).
306 * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
307 New function implemented.
309 2009-08-12 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
310 (diff107_cvs, resembling diff78 and diff88_cvs)
312 * src/atomic_ops/sysdeps/sunc/x86.h: New file.
313 * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
314 * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
316 * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
317 implementation for VC++ v8+ (include <intrin.h> before it unless
318 WinCE target); use asm-based barrier implementation for Borland,
319 DigitalMars and Watcom.
320 * src/atomic_ops.h: Fix comment (for x86_64).
321 * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
322 headers for Sun C (if not AO_USE_PTHREAD_DEFS).
323 * src/atomic_ops.h: Include VC-specific arch headers for Borland,
324 DigitalMars and Watcom (Win32 target only).
326 2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
327 (diff87_cvs, resembling diff29, diff68, diff78 partly)
329 * doc/README.txt: Remove outdated info about Windows support.
330 * src/atomic_ops/generalize.h (AO_nop_full): Replace
331 K&R-style function definition with ANSI C one.
332 * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
333 * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
335 * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
336 * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
337 * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
338 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
339 * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
340 * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
341 * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
342 * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
343 * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
344 * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
345 * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
346 * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
349 2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
351 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
352 update modifiers to asms, refine clobbers to "cr0", use
353 cr0 instead of cr7, add explicit AO_fetch_and_add,
354 add UNTESTED 64 bit support.
356 2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
358 * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
359 AO_compare_and_swap value differently, add
360 AO_compare_double_and_swap_double, some indentation fixes.
361 * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
362 robust and minimize clobbers, Add AO_compare_double_and_swap_double.
364 2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
366 * INSTALL: Add some platform-specific documentation.
367 * src/Makefile.msft: Fix copyright notice.
369 2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
371 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
372 * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
373 * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
374 * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
375 * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
376 * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
377 * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
378 * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
379 * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
380 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
381 * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
382 * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
383 * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
384 * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
385 * src/atomic_ops.c: Fix comments.
386 * src/atomic_ops.h: Fix comments.
387 * src/atomic_ops_stack.c: Fix comments.
388 * src/atomic_ops_stack.h: Fix comments.
390 2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (really Andrew Agno)
392 * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
395 2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
397 * config.guess, config.sub, configure: Regenerate/replace.
398 Use autoconf 2.61, automake 1.9.6.
400 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
402 * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
405 2008-08-19 Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
407 * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
409 2008-07-24 Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
411 * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
412 Add parentheses around addr arg for various functions.
414 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
416 * src/atomic_ops/sysdeps/gcc/powerpc.h:
417 Add const to first parameter of load calls (forgot one).
419 2008-07-18 Hans Boehm <Hans.Boehm@hp.com>
421 * doc/README.txt, src/atomic_ops/generalize.h,
422 src/atomic_ops/generalize-small.template,
423 src/atomic_ops/generalize-small.h,
424 src/atomic_ops/sysdeps/acquire_release_volatile.h,
425 src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
426 src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
427 src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
428 src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
429 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
430 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
431 src/atomic_ops/sysdeps/ao_t_is_int.h,
432 src/atomic_ops/sysdeps/atomic_load_store.h,
433 src/atomic_ops/sysdeps/char_atomic_load_store.h,
434 src/atomic_ops/sysdeps/int_atomic_load_store.h,
435 src/atomic_ops/sysdeps/short_atomic_load_store.h,
436 src/atomic_ops/sysdeps/generic_pthread.h,
437 src/atomic_ops/sysdeps/read_ordered.h,
438 src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
439 src/atomic_ops/sysdeps/gcc/arm.h,
440 src/atomic_ops/sysdeps/icc/ia64.h,
441 src/atomic_ops/sysdeps/ibmc/powerpc.h:
442 Add const to first parameter of load calls.
444 2008-07-10 Hans Boehm <Hans.Boehm@hp.com>
446 * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
447 AO_or_full, and let it be autogenerated instead.
449 2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
451 * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
452 fixing a merge accident.
454 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
457 * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
460 2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
463 * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
464 src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
465 * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
466 on char, align AO_t. Add cas, or.
467 * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
468 * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
469 * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
470 tests/Makefile.in: Regenerate.
472 2008-02-11 Hans Boehm <Hans.Boehm@hp.com>
473 (Really Ian Wienand & Debian maintainers)
475 * src/atomic_ops/sysdeps/gcc/x86.h
476 (AO_compare_double_and_swap_double_full): Correctly account for
479 2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
481 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
482 double_ptr_storage default to long long; define everywhere.
484 2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
486 * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
487 compare_double_and_swap_double.
489 2008-01-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
491 * src/atomic_ops/generalize.h: Add test_and_set generalizations,
492 Add AO_double_compare_and_swap generalizations.
493 * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
494 * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
495 * src/atomic_ops/sysdeps/gcc/x86.h,
496 src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
497 compare_double_and_swap_double, commented out for msftc.
498 * src/atomic_ops/sysdeps/standard_ao_double_t.h: Add
499 double_ptr_storage field.
501 2008-01-03 Hans Boehm <Hans.Boehm@hp.com>
502 (Merge from separate atomic_ops tree)
504 * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
505 double-width cas, and fix its implementation.
506 * doc/README.txt: Clarify use of _full. Add more warnings about
509 2008-01-02 Hans Boehm <Hans.Boehm@hp.com>
511 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
512 %X1 modifier to support indexed addressing.
514 2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
516 * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
519 2007-07-05 Andreas Tobler <a.tobler@schweiz.org>
521 * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
524 2007-06-26 Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
526 * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
529 2007-06-13 Hans Boehm <Hans.Boehm@hp.com>
531 * src/atomic_ops.h: include stddef.h
533 2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
535 * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
536 * src/atomic_ops.h: Add test for msftc/x86_64.h.
537 * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
538 * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
539 * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
540 * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
541 src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
542 src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
543 Replace unsigned long cast with size_t.
545 2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
547 * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
550 2007-05-14 Hans Boehm <Hans.Boehm@hp.com>
552 * doc/README.txt: Update to reflect C++0x effort.
554 2007-05-07 Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
556 * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
558 * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
561 2006-11-09 Earl Chew (Agilent)
563 * msftc/x86.h: Follow Microsoft documentation and include
568 2006-07-11 Hans Boehm <Hans.Boehm@hp.com>
570 * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
572 2006-03-28 Earl Chew (Agilent)
574 * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
575 * src/atomic_ops/sysdeps/msftc/x86.h:
576 Use new intrinsics available in MSVC 2003 and MSVC 2005.
577 Use inline assembler to generate mfence and byte sized xchg
578 Use correct prototype for InterlockedCompareExchange.
579 * src/atomic_ops.h: Add test for __PPC__ .
580 * tests/run_parallel.inc: Add simple VxWorks support.
581 * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
582 to silence compiler warnings.
584 2006-11-13 Hans Boehm <Hans.Boehm@hp.com>
586 * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
587 * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
589 2005-11-04 Hans Boehm <Hans.Boehm@hp.com>
591 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
592 all_acquire_release_volatile.h, instead of just the pointer-sized
594 * src/atomic_ops/sysdeps/gcc/ia64.h: Include
595 all_acquire_release_volatile.h and all_atomic_load_store.h,
596 instead of just the pointer-sized versions.
600 2005-09-27 Hans Boehm <Hans.Boehm@hp.com>
602 * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
603 * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
605 * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
606 instead of duplicating it.
607 * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
609 2005-09-16 Hans Boehm <Hans.Boehm@hp.com>
611 * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
612 definition with one that might actually work. (Thanks to Kazu
613 Hirata and Paul Brook.)
615 2005-08-01 Hans Boehm <Hans.Boehm@hp.com>
617 * src/atomic_ops/Makefile.am: Change function naming from "byte" to
622 2005-03-21 Hans Boehm <Hans.Boehm@hp.com>
623 Fix various acquire_release_volatile.h files to reflect the fact
624 that both icc and gcc seem to reorder ordinary memory accesses around
625 volatile accesses early in the compilation. Modify the acquire
626 release test to catch this problem (with high probablity, and only on
629 2005-03 Hans Boehm <Hans.Boehm@hp.com>
630 Fixes for recently introduced bugs. Update x86 and x86-64 assembly
631 syntax to deal with complaints by some recent gcc versions.
633 2005-02 Hans Boehm <Hans.Boehm@hp.com>
634 Added libatomic_ops_gpl library with support for mostly
635 lock-free stack and malloc().
637 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
638 Hans Boehm <Hans.Boehm@hp.com>
639 Use autoconf, automake, starting with code from Debian package.
642 2005-01 Hans Boehm <Hans.Boehm@hp.com>
643 * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
644 Change most platforms to use byte-wide test-and-set locations.
646 2005-01 Hans Boehm <Hans.Boehm@hp.com>
647 * ao_t_is_int.h: Add to trivially support int-wide operations
648 on platforms with int-sized pointers.
650 2004-12 Hans Boehm <Hans.Boehm@hp.com>
651 * gcc/powerpc.h: First serious attempt to support PowerPC (with
652 help from Maged Michael and others).
654 2004-12 Hans Boehm <Hans.Boehm@hp.com>
655 * sunc/sparc.[hS]: Added minimal supprt for the Sun SPARC compiler.
656 * atomic_ops_sysdeps.S: Add support for platforms that require
657 out-of-line assmebly code.
659 2004-10 Hans Boehm <Hans.Boehm@hp.com>
660 More work on char, short, int sized data. Add both
661 compare_double_and_swap_double and compare_and_swap_double.
662 Typically each platform will provide at most one of these.
664 2004-07-02 Ranko Zivojnovic
665 Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
667 2004-06 Hans Boehm <Hans.Boehm@hp.com>
668 Start to add atomic_ops primitives for different sized data.
670 2003-12-18 Hans Boehm <Hans.Boehm@hp.com>
672 * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
673 Fix support for ecc on IA64. Remove compiler_barrier workaround
674 for gcc 3.4 and later.
676 2003-12-17 Hans Boehm <Hans.Boehm@hp.com>
678 * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
679 atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
680 Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
681 for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
682 compiler on PA_RISC and IA64.
684 2003-12-09 Hans Boehm <Hans.Boehm@hp.com>
686 * many: Install under "atomic_ops" instead of "ao".
687 Change atomic_ops include file structure. Auxiliary include
688 files are all under include/atomic_ops.
689 Fix (hopefully) "make dist" in atomic_ops distribution.
690 Renamed various types to end in _t, though the old versions
691 are still defined for backward compatibility.
693 2003-12-08 Carlos O'Donell <carlos@baldric.uwo.ca>
695 * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
696 AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
697 helper macros. AO_test_and_set_full uses helper macros.
700 Started sometime after version 0.4 release. Currently the format is
701 informal. Eventually should become more GNU-like.