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