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