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