f335144443afa7e57ca207b878c1b6910895d459
[platform/upstream/gcc.git] / libitm / ChangeLog
1 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
2
3         Update copyright years.
4
5         * libitm.texi: Bump @copying's copyright year.
6
7 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
8
9         * Makefile.in: Regenerate.
10         * acinclude.m4: Add enable.m4 and cet.m4.
11         * config/x86/sjlj.S: Include cet.h.
12         (_ITM_beginTransaction): Add _CET_ENDBR.
13         Save Shadow Stack pointer.
14         (GTM_longjmp): Add _CET_ENDBR. Restore Shadow Stack pointer.
15         * config/x86/target.h (struct gtm_jmpbuf):
16         Add new field for Shadow Stack pointer.
17         * configure: Regenerate.
18         * configure.ac: Set CET_FLAGS. Update XCFLAGS.
19         * configure.ac: Update libtool_VERSION for x86.
20         * testsuite/Makefile.in: Regenerate.
21
22 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
23
24         * libitm/config/x86/target.h: Add new field (ssp).
25         * libitm/config/x86/sjlj.S: Change offsets.
26
27 2017-05-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28
29         * testsuite/lib/libitm.exp: Load scanlang.exp.
30
31 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
32
33         * libitm_i.h (sutrct gtm_thread): Fix typo in comment.
34
35 2017-01-21  Jakub Jelinek  <jakub@redhat.com>
36
37         PR other/79046
38         * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
39         of cat to get version from BASE-VER file.
40         * testsuite/Makefile.in: Regenerated.
41
42 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
43
44         * config/x86/target.h (htm_available): Determine vendor from
45         __get_cpuid_max return.  Use signature_INTEL_ebx.  Cleanup.
46
47 2017-01-18  Torvald Riegel  <triegel@redhat.com>
48
49         * config/x86/target.h (htm_available): Add check for some processors
50         on which TSX is broken.
51
52 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
53
54         PR other/79046
55         * configure.ac: Add GCC_BASE_VER.
56         * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
57         get version from BASE-VER file.
58         * testsuite/Makefile.in: Regenerated.
59         * configure: Regenerated.
60         * Makefile.in: Regenerated.
61
62 2017-01-04  Alan Modra  <amodra@gmail.com>
63
64         * Makefile.in: Regenerate.
65         * testsuite/Makefile.in: Regenerate.
66
67 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
68
69         Update copyright years.
70
71         * libitm.texi: Bump @copying's copyright year.
72
73 2016-12-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
74
75         * acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Remove.
76         * aclocal.m4: Regenerate.
77         * configure.ac: Call GCC_CHECK_LINKER_HWCAP instead of
78         LIBITM_CHECK_LINKER_HWCAP.
79
80 2016-11-15  Matthias Klose  <doko@ubuntu.com>
81
82         * configure: Regenerate.
83
84 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
85
86         PR libitm/70456
87         * util.cc (xmalloc): Use posix_memalign to allocate memory on
88         on cache line if requested.
89
90 2016-03-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
91
92         * config/s390/target.h (TARGET_BEGIN_TRANSACTION_ATTRIBUTE): Define
93         function attribute to disable floating point in begin_transaction() on
94         S/390.
95         * beginend.cc (begin_transaction): Use
96         TARGET_BEGIN_TRANSACTION_ATTRIBUTE.
97
98 2016-01-22  Torvald Riegel  <triegel@redhat.com>
99
100         * beginend.cc (GTM::gtm_thread::serial_lock): Put on cacheline
101         boundary.
102         (htm_fastpath): Remove.
103         (gtm_thread::begin_transaction): Fix HTM fastpath.
104         (_ITM_commitTransaction): Adapt.
105         (_ITM_commitTransactionEH): Adapt.
106         * libitm/config/linux/rwlock.h (gtm_rwlock): Add htm_fastpath member
107         and accessors.
108         * libitm/config/posix/rwlock.h (gtm_rwlock): Likewise.
109         * libitm/config/posix/rwlock.cc (gtm_rwlock::gtm_rwlock): Adapt.
110         * libitm/config/x86/sjlj.S (_ITM_beginTransaction): Fix HTM fastpath.
111         * libitm/libitm_i.h (htm_fastpath): Remove declaration.
112         * libitm/method-serial.cc (htm_mg): Adapt.
113         (gtm_thread::serialirr_mode): Adapt.
114         * libitm/query.cc (_ITM_inTransaction, _ITM_getTransactionId): Adapt.
115
116 2016-01-21  Torvald Riegel  <triegel@redhat.com>
117
118         * testsuite/libitm.c++/libstdc++-safeexc.C: Not supported on darwin
119         or AIX.
120
121 2016-01-19  Richard Henderson  <rth@redhat.com>
122
123         PR bootstrap/69343
124         PR bootstrap/69339
125         Revert:
126         2016-01-13  Richard Henderson  <rth@redhat.com>
127
128         * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
129         (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
130         (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
131         (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
132         * configure.ac (ARCH_AARCH64): New conditional.
133         (ARCH_PPC, ARCH_S390): Likewise.
134         * Makefile.in, configure: Rebuild.
135
136         * libitm.h (_ITM_TYPE_M128): Always define.
137         * vect64.cc: Split ...
138         * vect128.cc: ... out of...
139         * config/x86/x86_sse.cc: ... here.
140         * config/arm/neon.cc: New file.
141
142 2016-01-19  Torvald Riegel  <triegel@redhat.com>
143
144         * local_type_traits: Remove file.
145         * libitm_i.h: Don't include it anymore.
146         (sized_integral): Remove.
147
148 2016-01-16  Torvald Riegel  <triegel@redhat.com>
149
150         * method-gl.cc (gl_wt_dispatch::trycommit): Ensure proxy privatization
151         safety.
152         * method-ml.cc (ml_wt_dispatch::trycommit): Likewise.
153         * libitm/testsuite/libitm.c/priv-1.c: New.
154
155 2015-01-15  Torvald Riegel  <triegel@redhat.com>
156
157         testsuite/libitm.c++/libstdc++-safeexc.C: New.
158
159 2016-01-13  Torvald Riegel  <triegel@redhat.com>
160
161         * beginend.cc (gtm_thread::trycommit): Fix seq_cst fences.
162         * config/linux/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
163         (gtm_rwlock::write_unlock): Likewise.
164
165 2016-01-13  Richard Henderson  <rth@redhat.com>
166
167         * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
168         (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
169         (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
170         (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
171         * configure.ac (ARCH_AARCH64): New conditional.
172         (ARCH_PPC, ARCH_S390): Likewise.
173         * Makefile.in, configure: Rebuild.
174
175         * libitm.h (_ITM_TYPE_M128): Always define.
176         * vect64.cc: Split ...
177         * vect128.cc: ... out of...
178         * config/x86/x86_sse.cc: ... here.
179         * config/arm/neon.cc: New file.
180
181 2016-01-13  Torvald Riegel  <triegel@redhat.com>
182
183         * beginend.cc (gtm_thread::trycommit): Fix privatization safety.
184         * config/linux/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
185         * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
186         * dispatch.h (abi_dispatch::snapshot_most_recent): New.
187         * method-gl.cc (gl_wt_dispatch::snapshot_most_recent): New.
188         * method-ml.cc (ml_wt_dispatch::snapshot_most_recent): New.
189         * method-serial.cc (serial_dispatch::snapshot_most_recent): New.
190         (serialirr_dispatch::snapshot_most_recent): New.
191         (serialirr_onwrite_dispatch::snapshot_most_recent): New.
192
193 2016-01-12  Torvald Riegel  <triegel@redhat.com>
194
195         * libitm_i.h (gtm_mask_stack): Remove.
196         * beginend.cc (gtm_stmlock_array, gtm_clock): Likewise.
197         * stmlock.h: Remove file.
198         * config/alpha/cacheline.h: Likewise.
199         * config/generic/cacheline.h: Likewise.
200         * config/powerpc/cacheline.h: Likewise.
201         * config/sparc/cacheline.h: Likewise.
202         * config/x86/cacheline.h: Likewise.
203
204 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
205
206         Update copyright years.
207
208         * libitm.texi: Bump @copying's copyright year.
209
210 2015-11-26  Torvald Riegel  <triegel@redhat.com>
211
212         * method-ml.cc (ml_mg): Use multiplicative instead of simple hashing.
213         (ml_wt_dispatch::pre_write): Adapt.
214         (ml_wt_dispatch::pre_load): Likewise.
215
216 2015-11-22  Torvald Riegel  <triegel@redhat.com>
217
218         * libitm_i.h (gtm_alloc_action): Remove union.
219         * testsuite/libitm.c/alloc-1.c: New.
220
221 2015-11-19  Torvald Riegel  <triegel@redhat.com>
222
223         * testsuite/libitm.c++/eh-5.C: New.
224         * libitm.h (_ITM_cxa_free_exception): New.
225         * libitm.map (_ITM_cxa_free_exception): Add it.
226         * libitm.texi: Update ABI docs.
227         * libitm_i.h (gtm_transaction_cp::cxa_unthrown): Remove.
228         (gtm_transaction_cp::cxa_uncaught_count): Add.
229         (gtm_thread::cxa_unthrown): Remove.
230         (gtm_thread::cxa_uncaught_count_ptr): Add.
231         (gtm_thread::cxa_uncaught_count): Add.
232         (gtm_thread::drop_references_allocations): Rename to...
233         (gtm_thread::discard_allocation): ... this and adapt.
234         (gtm_thread::init_cpp_exceptions): New.
235         * beginend.cc (gtm_thread::gtm_thread): Adapt EH handling.
236         (gtm_thread::begin_transaction): Likewise.
237         (gtm_transaction_cp::save): Likewise.
238         (gtm_thread::trycommit): Likewise.
239         * eh_cpp.cc: Add overview comments.
240         (__cxa_eh_globals, __cxa_get_globals, __cxa_free_exception): Declare.
241         (free_any_exception, _ITM_cxa_free_exception): New.
242         (gtm_thread::init_cpp_exceptions): Define.
243         (_ITM_cxa_allocate_exception, _ITM_cxa_throw): Adapt.
244         (_ITM_cxa_begin_catch, _ITM_cxa_end_catch): Likewise.
245         (gtm_thread::revert_cpp_exceptions): Likewise.
246
247 2015-11-09  Torvald Riegel  <triegel@redhat.com>
248
249         * alloc_cpp.cc (_ZdlPvX, _ZdlPvXRKSt9nothrow_t, _ZGTtdlPvX,
250         _ZGTtdlPvXRKSt9nothrow_t, delsz_opnt): New.
251         * libitm.map: Add _ZGTtdlPvX and _ZGTtdlPvXRKSt9nothrow_t.
252         * libitm_i.h (gtm_alloc_action): Add free_fn_sz and sz.  Add comments.
253         (gtm_thread::forget_allocations): New overload with size_t argument.
254         * alloc.c (gtm_thread::forget_allocation): Define new overload and
255         adapt existing one.
256         (gtm_thread::record_allocation): Adapt.
257         (gtm_thread::commit_allocations_1): Adapt.
258         (gtm_thread::commit_allocations_2): Adapt.
259         * testsuite/libitm.c++/newdelete.C: New.
260
261 2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
262             Joseph Myers  <joseph@codesourcery.com>
263             Mark Shinwell  <shinwell@codesourcery.com>
264             Andrew Stubbs  <ams@codesourcery.com>
265             Rich Felker <dalias@libc.org>
266
267         * config/sh/sjlj.S (_ITM_beginTransaction): Bypass PLT calling
268         GTM_begin_transaction for compatibility with FDPIC.
269
270 2015-10-09  David Malcolm  <dmalcolm@redhat.com>
271
272         * testsuite/lib/libitm.exp: Load multiline.exp before prune.exp,
273         using load_gcc_lib.
274
275 2015-08-20  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>  (tiny change)
276
277         PR libitm/61164
278         * local_atomic (__always_inline): Rename to...
279         (__libitm_always_inline): ... this.
280
281 2015-07-03  Carlos Sánchez de La Lama  <csanchezdll@gmail.com>
282
283         PR target/52482
284         * config/powerpc/sjlj.S: Port to Xcode 2.5.
285
286 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
287
288         * config/linux/x86/futex_bits.h (sys_futex0) [__x86_64__]: Change
289         operands "op" and "val" to int.
290
291 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
292
293         * config/linux/sh/futex_bits.h (sys_futex0) Change operands
294         "op" and "val" to int.
295
296 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
297
298         * config/linux/alpha/futex_bits.h (sys_futex0) Change operands
299         "op" and "val" to int.
300
301 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
302
303         * config/linux/futex.cc (gtm_futex_wait, gtm_futex_wake):
304         Declare as static int.
305         (FUTEX_PRIVATE_FLAG): Remove L suffix.
306         * config/linux/futex_bits.h (sys_futex0) Change operand "op" to int.
307
308 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
309
310         * config/linux/x86/futex_bits.h (sys_futex0) [__PIC__]: Remove
311         sys_futex0 function.
312
313 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
314
315         * Makefile.in: Regenerated with automake-1.11.6.
316         * aclocal.m4: Likewise.
317         * configure: Likewise.
318         * testsuite/Makefile.in: Likewise.
319
320 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
321
322         * config/arm/hwcap.cc: Use fcntl.h instead of sys/fcntl.h.
323         * config/linux/x86/tls.h: Only use __GLIBC_PREREQ if defined.
324
325 2015-01-15  H.J. Lu  <hongjiu.lu@intel.com>
326
327         PR libitm/64360
328         * libitm.c/stackundo.c (test2): Make it static.
329         (test1): Likewise.
330
331 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
332
333         Update copyright years.
334
335 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
336
337         * libitm.texi: Bump @copying's copyright year.
338
339 2014-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
340
341         * testsuite/lib/libitm.exp: Load target-utils.exp.
342         Move load of target-supports.exp earlier.
343
344 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
345
346         * configure.tgt (x86_64): Tune -m32 multilib to generic.
347
348 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
349
350         PR bootstrap/63784
351         * configure: Regenerated.
352
353 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
354
355         PR target/63610
356         * configure: Regenerate.
357
358 2014-10-06  Marek Polacek  <polacek@redhat.com>
359
360         * testsuite/libitm.c/memcpy-1.c: Declare getpagesize.
361         * testsuite/libitm.c/memset-1.c: Likewise.
362
363 2014-07-24  Richard Henderson  <rth@redhat.com>
364
365         * config/aarch64/sjlj.S (_ITM_beginTransaction): Use post-inc
366         addressing mode in epilogue.
367
368 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
369
370         * acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): Check for
371         -mclear-hwcap instead.
372         * configure: Regenerate.
373         * clearcap.map: Remove.
374
375 2014-05-21  John Marino  <gnugcc@marino.st>
376
377         * configure.tgt (*-*-dragonfly*): New target.
378
379 2014-05-19  Richard Henderson  <rth@redhat.com>
380
381         * config/aarch64/sjlj.S: New file.
382         * config/aarch64/target.h: New file.
383         * configure.tgt: Enable aarch64.
384
385 2014-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
386
387         * config/generic/asmcfi.h: Also check for
388         __GCC_HAVE_DWARF2_CFI_ASM.
389
390 2013-04-02  Richard Henderson  <rth@redhat.com>
391
392         * config/alpha/target.h (PAGE_SIZE, FIXED_PAGE_SIZE): Remove.
393         * config/arm/target.h, config/sh/target.h: Likewise.
394         * config/sparc/target.h, config/x86/target.h: Likewise.
395
396 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
397
398         * config/linux/futex_bits.h: Include errno.h.
399         (sys_futex0): If syscall returns -1, return -errno rather than
400         -1.
401
402 2014-03-26  Joseph Myers  <joseph@codesourcery.com>
403
404         * libitm.texi (Index): Rename to Library Index.
405
406 2014-01-13  H.J. Lu  <hongjiu.lu@intel.com>
407
408         PR libitm/53113
409         * Makefile.am (x86_sse.lo): Append -msse to CXXFLAGS.
410         (x86_avx.lo): Append -mavx to CXXFLAGS.
411         * Makefile.in: Regenerate.
412
413 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
414
415         Update copyright years
416
417 2014-01-02  Tobias Burnus  <burnus@net-b.de>
418
419         * libitm.texi: Bump @copying's copyright year.
420
421 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
422
423         * config/powerpc/sjlj.S [__powerpc64__ && _CALL_ELF == 2]:
424         (FUNC): Define ELFv2 variant.
425         (END): Likewise.
426         (HIDDEN): Likewise.
427         (CALL): Likewise.
428         (BASE): Likewise.
429         (LR_SAVE): Likewise.
430
431 2013-09-20  Alan Modra  <amodra@gmail.com>
432
433         * configure: Regenerate.
434
435 2013-08-30  Torvald Riegel  <triegel@redhat.com>
436
437         * config/posix/rwlock.cc: Fix initialization order.
438
439 2013-08-30  Torvald Riegel  <triegel@redhat.com>
440
441         * libitm_i.h (gtm_thread): Assign an asm name to serial_lock.
442         (htm_fastpath): Assign an asm name.
443         * libitm.h (_ITM_codeProperties): Add non-ABI flags used by custom
444         HTM fast paths.
445         (_ITM_actions): Likewise.
446         * config/x86/target.h (HTM_CUSTOM_FASTPATH): Enable custom fastpath on
447         x86_64.
448         * config/x86/sjlj.S (_ITM_beginTransaction): Add custom HTM fast path.
449         * config/posix/rwlock.h (gtm_rwlock): Update comments.  Move summary
450         field to the start of the structure.
451         * config/linux/rwlock.h (gtm_rwlock): Update comments.
452         * beginend.cc (gtm_thread::begin_transaction): Add retry policy
453         handling for custom HTM fast paths.
454
455 2013-08-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
456         Revert:
457         2013-08-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
458
459         * configure.tgt: Add -msoft-float to XCFLAGS.
460
461 2013-08-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
462
463         * configure.tgt: Add -msoft-float to XCFLAGS.
464
465 2013-07-29  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
466
467         * config/s390/target.h (htm_begin, htm_commit, htm_abort)
468         (htm_transaction_active): Enable zEC12 instructions in the
469         assembler.
470         * configure.tgt: Remove -Wa,-march=zEC12 from XCFLAGS.
471
472 2013-07-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
473
474         * acinclude.m4: Add htm asm check for s390.
475         * configure.tgt: Add -mhtm and -Wa,-march=zEC12 to the options.
476         * configure: Regenerate.
477         * config/s390/target.h: Remove __HTM__ check.
478         (htm_available): Call getauxval to get hwcaps and check whether
479         HTM is available or not.
480
481 2013-07-15  Peter Bergner  <bergner@vnet.ibm.com>
482
483         * acinclude.m4 (LIBITM_CHECK_AS_HTM): New.
484         * configure.ac: Use it.
485         (AC_CHECK_HEADERS): Check for sys/auxv.h.
486         (AC_CHECK_FUNCS): Check for getauxval.
487         * config.h.in, configure: Rebuild.
488         * configure.tgt (target_cpu): Add -mhtm to XCFLAGS.
489         * config/powerpc/target.h: Include sys/auxv.h and htmintrin.h.
490         (USE_HTM_FASTPATH): Define.
491         (_TBEGIN_STARTED, _TBEGIN_INDETERMINATE, _TBEGIN_PERSISTENT,
492         _HTM_RETRIES) New macros.
493         (htm_abort, htm_abort_should_retry, htm_available, htm_begin, htm_init,
494         htm_begin_success, htm_commit, htm_transaction_active): New functions.
495
496 2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
497
498         * config/s390/target.h: Include htmintrin.h.
499         (_HTM_ITM_RETRIES): New macro definition.
500         (htm_available, htm_init, htm_begin, htm_begin_success)
501         (htm_commit, htm_abort, htm_abort_should_retry): New functions.
502
503 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
504             Cesar Philippidis  <cesar@codesourcery.com>
505
506         * testsuite/lib/libitm.exp: Reorder lib loads into dependency order.
507         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
508         * testsuite/libitm.c/c.exp: load_gcc_lib gcc-dg.exp.
509         * testsuite/libitm.c++/c++.exp: load_gcc_lib gcc-dg.exp.
510
511 2013-06-20  Torvald Riegel  <triegel@redhat.com>
512
513         * query.cc (_ITM_inTransaction): Abort when using the HTM fastpath.
514         (_ITM_getTransactionId): Same.
515         * config/x86/target.h (htm_transaction_active): New.
516
517 2013-06-20  Torvald Riegel  <triegel@redhat.com>
518
519         PR libitm/57643
520         * beginend.cc (gtm_thread::begin_transaction): Handle reentrancy in
521         the HTM fastpath.
522
523 2013-03-31  Gerald Pfeifer  <gerald@pfeifer.com>
524
525         PR bootstrap/56714
526         * local_atomic (__always_inline): Always define our version.
527         (__calculate_memory_order): Mark inline.
528         (atomic_thread_fence): Ditto.
529         (atomic_signal_fence): Ditto.
530         (atomic_bool::atomic_flag_test_and_set_explicit): Ditto.
531         (atomic_bool::atomic_flag_clear_explicit): Ditto.
532         (atomic_bool::atomic_flag_test_and_set): Ditto.
533         (atomic_bool::atomic_flag_clear): Ditto.
534
535 2013-04-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
536
537         * config/s390/sjlj.S: New file.
538         * config/s390/target.h: New file.
539         * configure.tgt: Set options for S/390.
540
541 2013-03-23  Andi Kleen  <ak@linux.intel.com>
542
543         * local_atomic (__always_inline): Add.
544         (__calculate_memory_order, atomic_thread_fence,
545          atomic_signal_fence, test_and_set, clear, store, load,
546          exchange, compare_exchange_weak, compare_exchange_strong,
547          fetch_add, fetch_sub, fetch_and, fetch_or, fetch_xor):
548         Add __always_inline to force inlining.
549
550 2013-02-11  Iain Sandoe  <iain@codesourcery.com>
551             Jack Howarth  <howarth@bromo.med.uc.edu>
552             Patrick Marlier  <patrick.marlier@gmail.com>
553
554         PR libitm/55693
555         * alloc_cpp.cc: Enable function declarations on darwin.
556         * eh_cpp.cc: Likewise.
557
558 2013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>
559
560         Update copyright years.
561
562 2012-11-09  Torvald Riegel  <triegel@redhat.com>
563
564         * beginend.cc (htm_fastpath): New.
565         (gtm_thread::begin_transaction, _ITM_commitTransaction,
566         _ITM_commitTransactionEH): Add HTM fastpath handling.
567         * config/linux/rwlock.h (gtm_rwlock.is_write_locked): New.
568         * config/posix/rwlock.h (gtm_rwlock.is_write_locked): New.
569         * config/x86/target.h (htm_available, htm_init, htm_begin_success,
570         htm_begin, htm_commit, htm_abort, htm_abort_should_retry): New.
571         * configure.tgt: Add -mrtm to XCFLAGS.
572         * method-serial.cc (htm_mg, o_htm_mg, htm_dispatch, dispatch_htm): New.
573         (gtm_thread::serialirr_mode): Add HTM fastpath handling.
574         * libitm_i.h (htm_fastpath, dispatch_htm): Declare.
575         * retry.cc (parse_default_method): Add HTM method parsing.
576         (gtm_thread::number_of_threads_changed): Use HTM by default if
577         available.
578
579 2012-11-04  Thomas Schwinge  <thomas@codesourcery.com>
580
581         * configure: Regenerate.
582
583 2012-10-31  Richard Henderson  <rth@redhat.com>
584
585         * acinclude.m4 (LIBITM_CHECK_AS_RTM): New.
586         * configure.ac: Use it.
587         * config.h.in, configure: Rebuild.
588         * testsuite/Makefile.in: Rebuild.
589
590 2012-10-24  Torvald Riegel  <triegel@redhat.com>
591
592         * libitm.texi: Clarify ABI requirements for data-logging functions.
593
594 2012-10-24  Torvald Riegel  <triegel@redhat.com>
595
596         * retry.cc (gtm_thread::decide_begin_dispatch): Ask dispatch whether
597         it requires serial mode instead of assuming that for certain
598         dispatchs.
599         * dispatch.h (abi_dispatch::requires_serial): New.
600         (abi_dispatch::abi_dispatch): Adapt.
601         * method-gl.cc (gl_wt_dispatch::gl_wt_dispatch): Adapt.
602         * method-ml.cc (ml_wt_dispatch::ml_wt_dispatch): Same.
603         * method-serial.cc (serialirr_dispatch::serialirr_dispatch,
604         serial_dispatch::serial_dispatch,
605         serialirr_onwrite_dispatch::serialirr_onwrite_dispatch): Same.
606
607 2012-10-02  Uros Bizjak  <ubizjak@gmail.com>
608
609         * config/x86/target.h (struct gtm_jmpbuf): Merge x86_64
610         and ia32 declarations some more.
611         * config/x86/sjlj.S (_ITM_beginTransaction): Move ret to common code.
612
613 2012-09-20  Jakub Jelinek  <jakub@redhat.com>
614
615         PR other/43620
616         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
617         * configure: Regenerate.
618         * Makefile.in: Regenerate.
619
620 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
621
622         * configure: Regenerated.
623
624 2012-07-31  Uros Bizjak  <ubizjak@gmail.com>
625
626         * config/x86/target.h (cpu_relax): Use __builtin_ia32_pause.
627
628 2012-05-21  Patrick Marlier  <patrick.marlier@gmail.com>
629
630         * eh_cpp.cc: Fix __cxa_end_catch declaration.
631
632 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
633
634         * configure: Regenerated.
635
636 2012-04-04  H.J. Lu  <hongjiu.lu@intel.com>
637
638         PR libitm/52854
639         * config/x86/target.h (gtm_jmpbuf): Replace long with long long
640         for x86-64.
641
642 2012-04-03  Tristan Gingold  <gingold@adacore.com>
643
644         * configure: Regenerate.
645
646 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
647
648         PR bootstrap/52812
649         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
650
651 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
652
653         * testsuite/lib/libitm.exp: load fortran-modules.exp
654
655 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
656
657         * configure.tgt (*-*-irix6*): Remove.
658
659 2012-03-13  Torvald Riegel  <triegel@redhat.com>
660
661         PR libitm/52526
662         * config/linux/rwlock.cc (GTM::gtm_rwlock::read_lock): Fix lost
663         wake-up.
664
665 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
666
667         * configure.tgt (*-*-osf*): Remove.
668         * configure: Regenerate.
669
670 2012-03-05  Torvald Riegel  <triegel@redhat.com>
671
672         * dispatch.h (CREATE_DISPATCH_METHODS_MEM): Don't execute
673         memtransfer/memset if size isn't larger than zero.
674
675 2012-03-02  Torvald Riegel  <triegel@redhat.com>
676
677         * libitm.texi: Link to specification and add a usage example.
678
679 2012-02-24  Torvald Riegel  <triegel@redhat.com>
680
681         * retry.cc (GTM::gtm_thread::number_of_threads_changed): Change
682         default dispatch for more than 1 thread to ml_wt.
683
684 2012-02-20  Torvald Riegel  <triegel@redhat.com>
685
686         * method-gl.cc (gl_wt_dispatch::orec): Put on separate cacheline.
687
688 2012-02-20  Torvald Riegel  <triegel@redhat.com>
689
690         * method-gl.cc (gl_wt_dispatch::rollback): Optimize memory orders.
691
692 2012-02-20  Torvald Riegel  <triegel@redhat.com>
693
694         * method-gl.cc (gl_wt_dispatch::trycommit): Remove handling of
695         serial mode corner cases made obsolete by prior gtm_rwlock changes.
696         (gl_wt_dispatch.rollback): Same.
697
698 2012-02-20  Torvald Riegel  <triegel@redhat.com>
699
700         * method-gl.cc (gl_wt_dispatch::pre_write): Optimize memory orders.
701
702 2012-02-20  Torvald Riegel  <triegel@redhat.com>
703
704         * method-gl.cc (gl_wt_dispatch::memtransfer_static): Add missing undo
705         for RfW src.  Optimize number of calls to gtm_thr.
706
707 2012-02-20  Torvald Riegel  <triegel@redhat.com>
708
709         * beginend.cc (GTM::gtm_thread::begin_transaction): Move serial lock
710         acquisition to ...
711         * retry.cc (GTM::gtm_thread::decide_begin_dispatch): ... here.
712         (default_dispatch): Make atomic.
713         (GTM::gtm_thread::set_default_dispatch): Access atomically.
714         (GTM::gtm_thread::decide_retry_strategy): Access atomically and
715         use decide_begin_dispatch() if default_dispatch might have changed.
716         (GTM::gtm_thread::number_of_threads_changed): Initialize
717         default_dispatch here.
718
719 2012-02-15  Iain Sandoe  <iains@gcc.gnu.org>
720             Patrick Marlier  <patrick.marlier@gmail.com>
721
722         PR libitm/52220
723         * alloc_cpp.cc: No dummy definitions for darwin.
724         * eh_cpp.cc: Likewise.
725
726 2012-02-14  Richard Henderson  <rth@redhat.com>
727
728         * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
729
730 2012-02-14  Uros Bizjak  <ubizjak@gmail.com>
731
732         * config/x86/target.h (GTM_longjmp): Correct .cfi directives.
733
734 2012-02-14  Torvald Riegel  <triegel@redhat.com>
735
736         * libitm_i.h (GTM::gtm_rwlog_entry): New.
737         (GTM::gtm_thread): Add read and write logs.
738         (GTM::dispatch_ml_wt): Declare.
739         * retry.cc (parse_default_method): Support ml_wt.
740         * method-ml.cc: New file.
741         * Makefile.am: Add method-ml.cc.
742         * Makefile.in: Regenerate.
743
744 2012-02-14  Torvald Riegel  <triegel@redhat.com>
745
746         * dispatch.h (GTM::abi_dispatch::supports): New.
747         (GTM::method_group::reinit): New.
748         * retry.cc (GTM::gtm_thread::decide_retry_strategy): Use reinit().
749         (GTM::gtm_thread::number_of_threads_changed): Check that the method
750         supports the current situation.
751
752 2012-02-14  Torvald Riegel  <triegel@redhat.com>
753
754         * util.cc (GTM::xcalloc): New.
755         * common.h (GTM::xcalloc): Declare.
756
757 2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>
758
759         * config/sparc/target.h (cpu_relax): Read from CC register.
760         * config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically.
761
762 2012-02-14  Uros Bizjak  <ubizjak@gmail.com>
763
764         * config/x86/target.h (GTM_longjmp): Jump indirect from memory address.
765
766 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
767
768         * configure.tgt (target_cpu): Handle sparc and sparc64/sparcv9.
769         * config/sparc/cacheline.h: New file.
770         * config/sparc/target.h: Likewise.
771         * config/sparc/sjlj.S: Likewise.
772         * config/linux/sparc/futex_bits.h: Likewise.
773
774 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
775
776         * configure.ac (link_itm): Fix comment.
777         * configure: Regenerate.
778         * testsuite/lib/libitm.exp: Do not pass -litm for the link.
779
780 2012-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
781
782         PR libitm/51822
783         * testsuite/libitm.c++/c++.exp (lang_link_flags): Add -shared-libgcc.
784         Correct libgomp references.
785
786 2012-01-24  Torvald Riegel  <triegel@redhat.com>
787
788         * config/linux/rwlock.cc (GTM::gtm_rwlock::write_unlock): Fix reader
789         wake-up.
790
791 2012-01-24  Uros Bizjak  <ubizjak@gmail.com>
792
793         * config/x86/target.h (gtm_jmpbuf) [__x86_64__]: Move rip to the
794         end of structure.
795         * config/x86/sjlj.S (_ITM_beginTransaction) [__x86_64__]: Update
796         offset values.  Do not copy return address.  Decrement stack
797         by 56 bytes only.
798         (GTM_longjump) [__x86_64__]: Update offset values.
799
800 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
801
802         PR libitm/51830
803         * config/x86/sjlj.S (_ITM_beginTransaction) [!__x86_64__]: Load
804         the first function argument to %eax.
805
806 2012-01-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
807
808         * libitm.h (_ITM_getThreadnum): Remove.
809         * libitm.map (_ITM_getThreadnum): Remove from LIBITM_1.0.
810
811 2012-01-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
812
813         * clearcap.map: New file.
814         * acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): New test.
815         * configure.ac: Call it.
816         Clear HWCAP_LDFLAGS if defaulting to -mavx.
817         * Makefile.am (AM_LDFLAGS): Add $(HWCAP_LDFLAGS)
818         * configure: Regenerate.
819         * Makefile.in: Regenerate.
820         * testsuite/Makefile.in: Regenerate.
821
822 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
823
824         PR libitm/51173
825         * testsuite/libitm.c++/static_ctor.C: Skip test, note PR, remove
826         include, exclude options.
827
828 2012-01-14  Torvald Riegel  <triegel@redhat.com>
829
830         * local.cc (GTM::gtm_undolog::rollback): Truncate undo log after
831         rolling back.
832         * containers.h (GTM::vector::set_size): New.
833
834 2012-01-14  Torvald Riegel  <triegel@redhat.com>
835
836         PR libitm/51855
837         * config/generic/tls.h (GTM::mask_stack_top): New.
838         (GTM::mask_stack_bottom): Declare.
839         * config/generic/tls.c (GTM::mask_stack_bottom): New.
840         * local.cc (gtm_undolog::rollback): Filter out any updates that
841         overlap the libitm stack.  Add current transaction as parameter.
842         * libitm_i.h (GTM::gtm_undolog::rollback): Adapt.
843         * beginend.cc (GTM::gtm_thread::rollback): Adapt.
844         * testsuite/libitm.c/stackundo.c: New test.
845
846 2012-01-10  Richard Henderson  <rth@redhat.com>
847
848         * libitm_i.h (_Unwind_DeleteException): Declare weak.
849         * eh_cpp.cc (_Unwind_DeleteException): Define for
850         !HAVE_ELF_STYLE_WEAKREF.
851
852 2012-01-08  Torvald Riegel  <triegel@redhat.com>
853
854         * local.cc (GTM_LB): Use GTM::gtm_undolog.
855         (GTM::gtm_thread::drop_references_undolog): Remove.
856         (GTM::gtm_thread::commit_undolog,
857         GTM::gtm_thread::rollback_undolog): Move to ...
858         * libitm_i.h (GTM::gtm_undolog): ...here. New.
859         (GTM::gtm_undolog_entry): Remove.
860         (GTM::gtm_thread): Adapt.
861         * beginend.cc (GTM::gtm_thread::rollback): Adapt.
862         (GTM::gtm_thread::trycommit): Adapt.
863         * method-serial.cc (serial_dispatch::log): Adapt.
864         * method-gl.cc (gl_wt_dispatch::pre_write): Adapt.
865         (gl_wt_dispatch::store): Fix likely/unlikely.
866         * containers.h (GTM::vector::resize): Add additional_capacity
867         parameter and handle it.
868         (GTM::vector::resize_noinline): New/adapt.
869         (GTM::vector::push): New.
870
871 2012-01-06  Richard Henderson  <rth@redhat.com>
872
873         * configure.tgt: Support powerpc-linux and powerpc-darwin.
874         * config/linux/powerpc/futex_bits.h: New file.
875         * config/powerpc/cacheline.h: New file.
876         * config/powerpc/sjlj.S: New file.
877         * config/powerpc/target.h: New file.
878         * config/generic/asmcfi.h (cfi_offset): New.
879         (cfi_restore, cfi_undefined): New.
880
881 2012-01-05  Aldy Hernandez  <aldyh@redhat.com>
882
883         PR other/51171
884         * testsuite/libitm.c/reentrant.c: Remove xfail.
885         (thread): Pass x to pure().
886         From Patrik Marlier <patrick.marlier@gmail.com>.
887
888 2011-12-24  Torvald Riegel  <triegel@redhat.com>
889
890         * beginend.cc (GTM::gtm_thread::trycommit): Don't enforce
891         privatization safety if already in serial mode.
892
893 2011-12-24  Torvald Riegel  <triegel@redhat.com>
894
895         * beginend.cc (GTM::gtm_thread::restart): Add and handle
896         finish_serial_upgrade parameter.
897         * libitm.h (GTM::gtm_thread::restart): Adapt declaration.
898         * config/linux/rwlock.cc (GTM::gtm_rwlock::write_lock_generic):
899         Don't unset reader flag.
900         (GTM::gtm_rwlock::write_upgrade_finish): New.
901         * config/posix/rwlock.cc: Same.
902         * config/linux/rwlock.h (GTM::gtm_rwlock::write_upgrade_finish):
903         Declare.
904         * config/posix/rwlock.h: Same.
905         * method-serial.cc (GTM::gtm_thread::serialirr_mode): Unset reader
906         flag after commit or after rollback when restarting.
907
908 2011-12-24  Torvald Riegel  <triegel@redhat.com>
909
910         * beginend.cc (GTM::gtm_thread::begin_transaction): Add comment.
911         (GTM::gtm_thread::try_commit): Changed memory order.
912         * config/linux/alpha/futex_bits.h (sys_futex0): Take atomic int
913         as parameter.
914         * config/linux/x86/futex_bits.h (sys_futex0): Same.
915         * config/linux/sh/futex_bits.h (sys_futex0): Same.
916         * config/linux/futex_bits.h (sys_futex0): Same.
917         * config/linux/futex.cc (futex_wait, futex_wake): Same.
918         * config/linux/futex.h (futex_wait, futex_wake): Same.
919         * config/linux/rwlock.h (gtm_rwlock::writers,
920         gtm_rwlock::writer_readers, gtm_rwlock::readers): Change to atomic
921         ints.
922         * config/linux/rwlock.cc (gtm_rwlock::read_lock,
923         gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
924         gtm_rwlock::write_unlock): Fix memory orders and fences.
925         * config/posix/rwlock.cc (gtm_rwlock::read_lock,
926         gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
927         gtm_rwlock::write_unlock): Same.
928         * config/linux/rwlock.h (gtm_rwlock::summary): Change to atomic int.
929         * method-gl.cc (gl_mg::init, gl_wt_dispatch::memtransfer_static,
930         gl_wt_dispatch::memset_static, gl_wt_dispatch::begin_or_restart):
931         Add comments.
932         (gl_wt_dispatch::pre_write, gl_wt_dispatch::validate,
933         gl_wt_dispatch::load, gl_wt_dispatch::store,
934         gl_wt_dispatch::try_commit, gl_wt_dispatch::rollback): Fix memory
935         orders and fences.  Add comments.
936
937 2011-12-21  Jakub Jelinek  <jakub@redhat.com>
938
939         * Makefile.am (AM_CXXFLAGS): Put $(XCFLAGS) first.
940         * Makefile.in: Regenerated.
941
942 2011-12-17  Kaz Kojima  <kkojima@gcc.gnu.org>
943
944         * configure.tgt: Add sh* case.
945         * config/sh/target.h: New file.
946         * config/sh/sjlj.S: New file.
947         * config/linux/sh/futex_bits.h: New file.
948
949 2011-12-14  Richard Henderson  <rth@redhat.com>
950
951         * config/arm/hwcap.h, config/arm/hwcap.cc: New files.
952         * config/arm/sjlj.S, config/arm/target.h: New files.
953         * config/generic/asmcfi.h (cfi_adjust_cfa_offset): New.
954         (cfi_rel_offset): New.
955         * config/linux/futex_bits.h: New file.
956         * config/linux/futex.cc: Include futex_bits.h here...
957         * config/linux/futex.h: ... not here.
958         * Makefile.am (libitm_la_SOURCES) <ARCH_ARM>: Add hwcap.cc.
959         * configure.ac (ARCH_AM): New conditional.
960         * Makefile.in, configure: Rebuild.
961         * configure.tgt: Handle ARM.
962
963 2011-12-13  Richard Henderson  <rth@redhat.com>
964
965         * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Fix
966         signed/unsigned comparison werror.
967
968         * local_atomic: New file.
969         * libitm_i.h: Include it.
970         (gtm_thread::shared_state): Use atomic template.
971         * beginend.cc (GTM::gtm_clock): Use atomic template.
972         (global_tid): Use atomic template if 64-bit atomics available.
973         (gtm_thread::gtm_thread): Update shared_state access.
974         (gtm_thread::trycommit): Likewise.
975         (choose_code_path): Update global_tid access.
976         * method-gl.cc (gl_mg::orec): Use atomic template.  Update all users.
977         * stmlock.h (GTM::gtm_clock): Use atomic template.
978         (gtm_get_clock, gtm_inc_clock): Update accesses.
979         * config/linux/rwlock.cc (gtm_rwlock::read_lock): Remove
980         redundant __sync_synchronize after atomic shared_state access.
981         * config/posix/rwlock.cc (gtm_rwlock::read_lock): Likewise.
982         (gtm_rwlock::write_lock_generic): Likewise.
983         (gtm_rwlock::read_unlock): Likewise.
984         * config/alpha/target.h (atomic_read_barrier): Remove.
985         (atomic_write_barrier): Remove.
986         * config/x86/target.h (atomic_read_barrier): Remove.
987         (atomic_write_barrier): Remove.
988
989 2011-11-30  Richard Henderson  <rth@redhat.com>
990
991         * libitm_i.h (GTM_longjmp): Swap first and second arguments.
992         * beginend.c (_ITM_abortTransaction): Update to match.
993         (GTM::gtm_thread::restart): Likewise.
994         * config/alpha/sjlj.S (GTM_longjmp): Likewise.
995         * config/x86/sjlj.S (GTM_longjmp): Likewise.
996
997 2011-11-23  Iain Sandoe  <iains@gcc.gnu.org>
998
999         * Makefile.am (libitm_la_LDFLAGS): Remove "-no-undefined".
1000         * Makefile.in: Regenerate.
1001
1002 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
1003
1004         * configure.ac: Use GCC_CHECK_ELF_STYLE_WEAKREF.
1005         * alloc_cpp.cc: Generate dummy functions if we don't
1006         HAVE_ELF_STYLE_WEAKREF.
1007         * eh_cpp.cc: Likewise.
1008         * configure: Regenerate.
1009         * aclocal.m4:  Likewise.
1010         * config.h.in: Likewise.
1011         * Makefile.in: Likewise.
1012         * testsuite/Makefile.in: Likewise.
1013
1014 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
1015
1016         * config/x86/sjlj.S (CONCAT1, CONCAT2, SYM): Respond to
1017         __USER_LABEL_PREFIX__ for targets that use it.
1018         (TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets.
1019         (_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist
1020         in portability to non-elf targets.
1021         (GTM_longjmp): Likewise.
1022         * libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__
1023         where required.
1024
1025 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
1026
1027         * testsuite/libitm.c/memcpy-1.c: Allow for MAP_ANON spelling.
1028         * testsuite/libitm.c/memset-1.c: Likewise.
1029
1030 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
1031
1032         * configure: Regenerate.
1033
1034 2011-11-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1035
1036         * acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Handle gold.
1037         (LIBITM_ENABLE_SYMVERS): Handle sun style.
1038         * Makefile.am: Handle sun style versioning.
1039         (libitm_la_LINK): Add $(libitm_la_LDFLAGS).
1040         * configure: Regenerate.
1041         * Makefile.in: Regenerate.
1042
1043 2011-11-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1044
1045         * config/generic/asmcfi.h: Fix comment.
1046         * config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code
1047         sequence without .hidden support, error for non-ELF targets.
1048         (GTM_longjmp) [__ELF__]: Only use .hidden if
1049         HAVE_ATTRIBUTE_VISIBILITY.
1050
1051 2011-11-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1052
1053         * alloc_cpp.cc [__osf__] (_ZnwX, _ZdlPv, _ZnaX, _ZdaPv,
1054         _ZnwXRKSt9nothrow_t, _ZdlPvRKSt9nothrow_t, _ZdaPvRKSt9nothrow_t):
1055         Dummy functions.
1056         * eh_cpp.cc [__osf__] (__cxa_allocate_exception, __cxa_throw,
1057         __cxa_begin_catch, __cxa_end_catch, __cxa_tm_cleanup): Likewise.
1058
1059 2011-11-16  Uros Bizjak  <ubizjak@gmail.com>
1060
1061         PR bootstrap/51098
1062         * acinclude.m4 (LIBITM_CHECK_AS_AVX): Fix target selector.
1063         * configure: Regenerate.
1064
1065 2011-11-14  H.J. Lu  <hongjiu.lu@intel.com>
1066
1067         * testsuite/lib/libitm.exp: Check ia32 instead of ilp32.
1068
1069 2011-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1070
1071         * config/alpha/sjlj.S (_ITM_beginTransaction) [!__ELF__]: Don't use
1072         .hidden.
1073         (.note.GNU-stack): Only use if __linux__.
1074         * alloc_cpp.cc [!__osf__] (_ZnaXRKSt9nothrow_t): Dummy function.
1075         * testsuite/libitm.c/notx.c: Use dg-options "-pthread".
1076         * testsuite/libitm.c/reentrant.c: Likewise.
1077         * testsuite/libitm.c/simple-2.c: Likewise.
1078         * testsuite/libitm.c/txrelease.c: Likewise.
1079         * testsuite/libitm.c++/static_ctor.C: Likewise.
1080
1081 2011-11-10  Richard Henderson  <rth@redhat.com>
1082
1083         * config/x86/x86_avx.cc: Remove #undef __AVX__ hack.  Tidy comments.
1084         * Makefile.am (x86_avx.lo): Only add -mavx if ARCH_X86_AVX.
1085         * configure.ac (ARCH_X86_AVX): New conditional.
1086         * Makefile.in, configure: Rebuild.
1087
1088 2011-11-09  Richard Henderson  <rth@redhat.com>
1089
1090         * acinclude.m4 (LIBITM_CHECK_AS_AVX): New.
1091         * configure.ac: Use it.
1092         * config.h.in, configure: Rebuild.
1093         * config/x86/x86_avx.cc: Handle !HAVE_AS_AVX.
1094
1095 2011-11-09  Richard Henderson  <rth@redhat.com>
1096
1097         * barrier.tpl, memcpy.cc, memset.cc, method-wbetl.cc: Remove file.
1098         * config/alpha/unaligned.h: Remove file.
1099         * config/generic/unaligned.h: Remove file.
1100         * config/x86/unaligned.h: Remove file.
1101         * config/generic/cachepage.h: Remove file.
1102         * config/posix/cachepage.cc: Remove file.
1103         * config/generic/cacheline.cc: Remove file.
1104         * config/x86/cacheline.cc: Remove file.
1105         * config/generic/cacheline.h (gtm_cacheline): Remove the
1106         store_mask, copy_mask, copy_mask_wb methods.
1107         * config/x86/cacheline.h: Likewise.
1108         * config/alpha/cacheline.h: Fall back to generic after setting size.
1109         * config/generic/tls.cc (gtm_mask_stack): Remove.
1110         * config/x86/x86_avx.cc (GTM_vpperm_shift): Remove.
1111         (GTM_vpalignr_table): Remove.
1112         * config/x86/x86_sse.cc (GTM_palignr_table): Remove.
1113         (GTM_pshift_table): Remove.
1114         * config/libitm_i.h: Don't include cachepage.h.
1115         * Makefile.am (libitm_la_SOURCES): Remove cacheline.cc, cachepage.cc
1116         * Makefile.in, testsuite/Makefile.in: Rebuild.
1117
1118 2011-11-09  Richard Henderson  <rth@redhat.com>
1119
1120         * config/x86/cacheline.h (gtm_cacheline::store_mask): Use .byte
1121         to emit branch prediction hint.
1122
1123         * config/x86/sjlj.S: Protect elf directives with __ELF__.
1124         Protect .note.GNU-stack with __linux__.
1125
1126         * configure.ac (GCC_AS_CFI_PSEUDO_OP): Test it.
1127         * configure, aclocal.m4, config.h.in: Rebuild.
1128         * config/generic/asmcfi.h: New file.
1129         * config/x86/sjlj.S: Use it.
1130
1131 2011-11-08  Richard Henderson  <rth@redhat.com>
1132
1133         * local.cc (_ITM_LB): Use a normal call, not a function alias.
1134
1135 2011-11-08  Richard Henderson  <rth@redhat.com>
1136
1137         * configure.tgt: Test correct directory for supported cpus.
1138
1139         * configure.ac: Exit if unsupported.
1140         * configure: Rebuild.
1141         * configure.tgt: Delete boilerplate from libgomp for unsupported
1142         targets.  Set UNSUPPORTED for unsupported targets.
1143
1144 2011-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1145
1146         * configure.tgt: Handle i386 like i[456]86.
1147         * config/generic/tls.h [!HAVE_ARCH_GTM_THREAD] (gtm_thr): Don't
1148         take address.
1149         * config/generic/tls.cc [!HAVE_ARCH_GTM_THREAD ||
1150         !HAVE_ARCH_GTM_THREAD_DISP] (_gtm_thr_tls): New variable.
1151
1152 2011-11-05  Aldy Hernandez  <aldyh@redhat.com>
1153
1154         * method-wbetl.cc: Update copyright notice.
1155         * aatree.cc: Same.
1156         * util.cc: Same.
1157         * libitm.h: Same.
1158         * memset.cc: Same.
1159         * eh_cpp.cc: Same.
1160         * barrier.tpl: Same.
1161         * useraction.cc: Same.
1162         * stmlock.h: Same.
1163         * memcpy.cc: Same.
1164         * common.h: Same.
1165         * config/generic/tls.cc: Same.
1166         * config/generic/cacheline.h: Same.
1167         * config/generic/cachepage.h: Same.
1168         * config/generic/cacheline.cc: Same.
1169         * config/generic/unaligned.h: Same.
1170         * config/x86/cacheline.h: Same.
1171         * config/x86/cacheline.cc: Same.
1172         * config/x86/unaligned.h: Same.
1173         * config/alpha/cacheline.h: Same.
1174         * config/alpha/unaligned.h: Same.
1175         * config/alpha/sjlj.S: Same.
1176         * config/posix/cachepage.cc: Same.
1177         * config/linux/futex.h: Same.
1178         * config/linux/alpha/futex_bits.h: Same.
1179
1180 2011-11-04  Torvald Riegel  <triegel@redhat.com>
1181
1182         * libitm.texi: No cover text and invariant sections.
1183
1184 2011-11-03  Richard Henderson  <rth@redhat.com>
1185
1186         * local_type_traits: New file.
1187         * libitm_i.h: Use it.  Use C headers, not C++ wrappers.
1188
1189 2011-11-03  Richard Henderson  <rth@redhat.com>
1190
1191         * configure.ac: Don't test for gfortran.
1192         * configure: Rebuild.
1193
1194         * testsuite/lib/libitm.exp: Don't include gfortran-dg.exp.
1195         * testsuite/libitm.c++/c++.exp: Don't use gfortran-dg-runtest.
1196
1197 2011-11-03  Aldy Hernandez  <aldyh@redhat.com>
1198
1199         * testsuite/libitm.c/memcpy-1.c: Add copyright notice.
1200         * testsuite/libitm.c/memset-1.c: Same.
1201         * testsuite/libitm.c/c.exp: Same.
1202         * testsuite/lib/libitm-dg.exp: Same.
1203         * testsuite/lib/libitm.exp: Same.
1204         * testsuite/libitm.c++/c++.exp: Same.
1205
1206 2011-11-03  Aldy Hernandez  <aldyh@redhat.com>
1207
1208         * testsuite/config/default.exp: Update copyright date.
1209         * configure.ac: Add copyright info.
1210         * configure.tgt: Same.
1211
1212 2011-11-03  Aldy Hernandez  <aldyh@redhat.com>
1213
1214         * testsuite/libitm.c/reentrant.c: XFAIL.
1215         * testsuite/libitm.c++/static_ctor.C: XFAIL.
1216
1217 2011-10-29  Torvald Riegel  <triegel@redhat.com>
1218
1219         * beginend.cc (GTM::gtm_thread::rollback): Add aborting flag and
1220         handle aborts.
1221         (_ITM_abortTransaction): Handle aborts of outer transactions.
1222         * libitm_i.h: Same.
1223         * eh_cpp.cc (GTM::gtm_thread::revert_cpp_exceptions): Fix assertion.
1224         * libitm.texi: Document aborts of outer transactions.
1225         * testsuite/libitm.c/cancel.c: New file.
1226
1227 2011-10-19  Torvald Riegel  <triegel@redhat.com>
1228
1229         * testsuite/*: Change __transaction to __transaction_atomic or
1230         __transaction_relaxed.
1231
1232 2011-10-19  Torvald Riegel  <triegel@redhat.com>
1233
1234         * config/linux/x86/tls.h (abi_disp): Make TLS slot read volatile.
1235         (gtm_thr): Same.
1236
1237 2011-10-19  Torvald Riegel  <triegel@redhat.com>
1238
1239         * libitm_i.h: Add gl_wt dispatch.
1240         * retry.cc (parse_default_method): Same.
1241         * method-gl.cc: New file.
1242         * Makefile.am: Use method-gl.cc.
1243         * Makefile.in: Rebuild.
1244
1245 2011-10-19  Torvald Riegel  <triegel@redhat.com>
1246
1247         * beginend.cc (GTM::gtm_thread::trycommit): Ensure privatization
1248         safety if requested by a TM method.
1249         * dispatch.h (GTM::abi_dispatch::trycommit): Add parameter for
1250         privatization safety.
1251         * method-serial.cc: Same.
1252
1253 2011-10-19  Torvald Riegel  <triegel@redhat.com>
1254
1255         * libitm_i.h: Renamed gtm_local_undo to gtm_undolog_entry.
1256         (GTM::gtm_thread): Renamed local_undo to undolog. Renamed
1257         undolog-related member functions from *_local to *_undolog.
1258         * local.cc (gtm_thread::commit_undolog): Same.
1259         * beginend.cc (GTM::gtm_thread::trycommit): Same.
1260         (GTM::gtm_thread::rollback): Roll back undolog before
1261         dispatch-specific rollback.
1262
1263 2011-10-19  Torvald Riegel  <triegel@redhat.com>
1264
1265         * retry.cc (GTM::gtm_thread::decide_retry_strategy): Handle
1266         re-initialization of the current method group.
1267         * libitm_i.h (GTM::gtm_restart_reason): Add restart reason for this.
1268
1269 2011-10-19  Torvald Riegel  <triegel@redhat.com>
1270
1271         * alloc.cc (commit_allocations_2): Do not free transaction-local
1272         memory when committing a nested transaction.
1273
1274 2011-10-19  Torvald Riegel  <triegel@redhat.com>
1275
1276         * method-serial.cc (GTM::gtm_thread::serialirr_mode): Fixed: Use
1277         serial-irrevocable dispatch, not serial.
1278
1279 2011-10-19  Torvald Riegel  <triegel@redhat.com>
1280
1281         * libitm_i.h (GTM::gtm_restart_reason): Re-arrange and clean up
1282         declarations.
1283         * dispatch.h (GTM::abi_dispatch::begin_or_restart): New.
1284         * method-serial.cc: Implement begin_or_restart().
1285         * beginend.cc (GTM::gtm_thread::begin_transaction): Call
1286         dispatch-specific begin_or_restart().
1287         (GTM::gtm_thread::restart): Same.
1288
1289 2011-08-23  Torvald Riegel  <triegel@redhat.com>
1290
1291         * retry.cc (GTM::gtm_thread::decide_retry_strategy): Cleanup. Fix
1292         restarting without switching to serial mode.
1293         (GTM::gtm_thread::decide_begin_dispatch): Let the caller set the
1294         transaction state. Choose closed-nesting alternative if available.
1295         (GTM::gtm_thread::set_default_dispatch): New.
1296         (parse_default_method): New.
1297         (GTM::gtm_thread::number_of_threads_changed): New.
1298         * method-serial.cc (GTM::serial_mg): New method group class.
1299         (GTM::serialirr_dispatch): Belongs to serial_mg. Remove reinit and
1300         fini.
1301         (GTM::serial_dispatch): Same.
1302         (GTM::serialirr_onwrite_dispatch): Same.
1303         (GTM::gtm_thread::serialirr_mode): Remove calls to fini.
1304         * beginend.cc (GTM::gtm_thread::~gtm_thread): Maintain number of
1305         registered threads.
1306         (GTM::gtm_thread::gtm_thread): Same.
1307         (_ITM_abortTransaction): Remove calls to abi_dispatch::fini().
1308         (GTM::gtm_thread::trycommit): Same. Reset number of restarts.
1309         (GTM::gtm_thread::begin_transaction): Let decide_begin_dispatch()
1310         choose dispatch but set state according to dispatch here.
1311         * dispatch.h (GTM::abi_dispatch::fini): Move to method group.
1312         (GTM::method_group): New class.
1313         (GTM::abi_dispatch): Add comments. Maintain pointer to method_group.
1314         * libitm_i.h (GTM::gtm_thread): Add declarations for new members.
1315         * libitm.texi: Document TM methods, method groups, method life cycle.
1316         Rename method sets to method groups.
1317
1318 2011-08-23  Torvald Riegel  <triegel@redhat.com>
1319
1320         * config/x86/tls.h: Moved to ...
1321         * config/linux/x86/tls.h: ... here.
1322
1323 2011-08-23  Torvald Riegel  <triegel@redhat.com>
1324
1325         * config/x86/tls.h: Use __x86_64__ instead of __LP64__.
1326         Add X32 support.
1327         * config/x86/sjlj.S: Same.
1328
1329 2011-08-19  Torvald Riegel  <triegel@redhat.com>
1330
1331         * config/linux/rwlock.h: New file.
1332         * config/linux/rwlock.c: New file.
1333         * configure.ac: Reenable futex support (undo SVN rev 157758).
1334         * Makefile.am: Same.
1335         * configure.tgt: Same.
1336         * config/linux/alpha/futex_bits.h: Same.
1337         * config/linux/futex.h: Same. Return number of woken processes.
1338         * config/linux/futex.cc: Same.
1339         (futex_wait): Remove spinning.
1340         * config/linux/x86/futex_bits.h: Same. Set futex timeout to zero.
1341         Use __x86_64__ instead of __LP64__.
1342         * aclocal.m4: Include generic futex checks.
1343         * configure: Rebuild.
1344         * Makefile.in: Rebuild.
1345         * testsuite/Makefile.in: Rebuild.
1346         * beginend.cc: Include pthread.h.
1347         * config/posix/cachepage.cc: Same.
1348
1349 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1350
1351         * config/x86/tls.h (gtm_tx, set_gtm_tx, setup_gtm_thr): Removed.
1352         (abi_disp, set_abi_disp): Move to tx's TLS slot.
1353         (set_gtm_thr): New.
1354         * config/generic/tls.h (gtm_tx, set_gtm_tx, setup_gtm_thr): Removed.
1355         (set_gtm_thr): New.
1356         (GTM::gtm_thread::thread_num): Removed.
1357         (GTM::gtm_thread): Renamed to GTM::gtm_thread_tls.
1358         * libitm_i.h (GTM::gtm_transaction): Renamed to GTM::gtm_thread. More
1359         tx-to-thread renaming.
1360         * beginend.cc: Adapted to tx-to-thread renaming.
1361         (GTM::gtm_thread::~gtm_thread): Extracted from thread_exit_handler().
1362         (GTM::gtm_thread::gtm_thread): Extracted from begin_transaction().
1363         * query.cc (_ITM_getTransactionId, _ITM_inTransaction): Renamed
1364         gtm_transaction to gtm_thread.
1365         (_ITM_getThreadnum): Removed. Not supported anymore.
1366         * testsuite/libitm.c/notx.c (main): Removed _ITM_getThreadnum call.
1367         * libitm.texi: Documented that _ITM_getThreadnum is not supported.
1368         * useraction.cc: Renamed gtm_transaction to gtm_thread. Adapted to
1369         gtm_tx-to-gtm_thr renaming if necessary.
1370         * eh_cpp.cc: Same.
1371         * local.cc: Same.
1372         * retry.cc: Same.
1373         * clone.cc: Same.
1374         * alloc.cc: Same.
1375         * alloc_c.cc: Same.
1376         * alloc_cpp.cc: Same.
1377         * method-serial.cc: Same.
1378         * config/generic/tls.cc: Same.
1379         * config/posix/rwlock.h (gtm_rwlock): Same.
1380         * config/posix/rwlock.cc: Same. Adapted to more tx-to-thread renaming.
1381
1382 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1383
1384         * config/posix/rwlock.cc (gtm_rwlock::read_lock): Changed locking
1385         implementation.
1386         (gtm_rwlock::read_unlock): Same.
1387         (gtm_rwlock::write_lock_generic): New. Generalized from ...
1388         (gtm_rwlock::write_lock, gtm_rwlock::write_upgrade): ... these.
1389         * libitm_i.h (GTM::gtm_transaction): Added shared_state.
1390         * config/posix/rwlock.h (GTM::gtm_rwlock): Removed a_reader and
1391         w_upgrade. Replaced by per-transaction flags (in shared_state).
1392         Added c_confirmed_writers.
1393         (GTM::gtm_rwlock::read_lock, GTM::gtm_rwlock::read_unlock,
1394         GTM::gtm_rwlock::write_upgrade): Add tx parameter.
1395         * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Same.
1396         * method-serial.cc (GTM::gtm_transaction::serialirr_mode): Same.
1397         * beginend.cc (GTM::gtm_transaction::begin_transaction,
1398         _ITM_abortTransaction, GTM::gtm_transaction::trycommit): Same.
1399         * libitm.texi: Document locking conventions and implementations in
1400         libitm.
1401
1402 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1403
1404         * libitm_i.h (next_tx): Add list of all threads' transaction.
1405         * beginend.cc (GTM::gtm_transaction::begin_transaction): Register
1406         transaction with list of transactions and ...
1407         (thread_exit_handler): ... deregister here.
1408         * config/alpha/target.h: Add HW_CACHELINE_SIZE setting.
1409         * config/x86/target.h: Same.
1410
1411 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1412
1413         * testsuite/libitm.c++/static_ctor.C: New file.
1414
1415 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1416
1417         * testsuite/libitm.c/reentrant.c: New file.
1418
1419 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1420
1421         * config/generic/tls.h: Remove the free list for transactions and ...
1422         * beginend.cc (GTM::gtm_transaction::operator new): ... allocate ...
1423         (GTM::gtm_transaction::operator delete): ... and release here.
1424         (thread_exit_handler): New. Delete tx when thread terminates.
1425         (thread_exit_init): New.
1426         (GTM::gtm_transaction::begin_transaction): Set up on-exit handler.
1427         * testsuite/libitm.c/txrelease.c: New file.
1428
1429 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1430
1431         * query.cc (_ITM_getThreadnum): Set up gtm_thread if necessary.
1432         * testsuite/libitm.c/notx.c: New file.
1433
1434 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1435
1436         * config/generic/tls.h (gtm_thread): Move local_tid from here ...
1437         * libitm_i.h (local_tid): ... to here.
1438         * beginend.cc (GTM::gtm_transaction::begin_transaction): Same.
1439         (GTM::gtm_transaction::operator new): Set up gtm_thread if necessary.
1440
1441 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1442
1443         * retry.cc (GTM::gtm_transaction::decide_begin_dispatch): Use
1444         serialirr_onwrite_dispatch as new default for now.
1445         * method-serial.cc (serialirr_onwrite_dispatch): New.
1446         (GTM::dispatch_serialirr_onwrite): New.
1447         * libitm_i.h: Same.
1448
1449 2011-08-12  Torvald Riegel  <triegel@redhat.com>
1450
1451         * beginend.cc (GTM::gtm_transaction::rollback): Roll back tx id as well.
1452         * query.cc (_ITM_getTransactionId): There is no active transaction if
1453         the current nesting level is zero.
1454
1455 2011-07-28  Torvald Riegel  <triegel@redhat.com>
1456
1457         * beginend.cc (GTM::gtm_transaction::rollback): Fix nesting level
1458         rollback.
1459
1460 2011-07-28  Torvald Riegel  <triegel@redhat.com>
1461
1462         * retry.cc (GTM::gtm_transaction::decide_begin_dispatch): Get
1463         transaction properties from the caller instead of from the
1464         transaction object.
1465         * libitm_i.h: Same.
1466         * beginend.cc (GTM::gtm_transaction::begin_transaction): Same.
1467
1468 2011-07-28  Torvald Riegel  <triegel@redhat.com>
1469
1470         * local.cc (gtm_transaction::rollback_local): Support closed nesting.
1471         * eh_cpp.cc (GTM::gtm_transaction::revert_cpp_exceptions): Same.
1472         * dispatch.h: Same.
1473         * method-serial.cc: Same.
1474         * beginend.cc (GTM::gtm_transaction::begin_transaction): Change to
1475         flat nesting as default, and closed nesting on demand.
1476         (GTM::gtm_transaction::rollback): Same.
1477         (_ITM_abortTransaction): Same.
1478         (GTM::gtm_transaction::restart): Same.
1479         (GTM::gtm_transaction::trycommit): Same.
1480         (GTM::gtm_transaction::trycommit_and_finalize): Removed.
1481         (choose_code_path): New.
1482         (GTM::gtm_transaction_cp::save): New.
1483         (GTM::gtm_transaction_cp::commit): New.
1484         * query.cc (_ITM_inTransaction): Support flat nesting.
1485         * libitm_i.h (GTM::gtm_transaction_cp): New helper struct for nesting.
1486         (GTM::gtm_transaction): Support flat and closed nesting.
1487         * alloc.cc (commit_allocations_2): New.
1488         (commit_cb_data): New helper struct.
1489         (GTM::gtm_transaction::commit_allocations): Handle nested
1490         commits/rollbacks.
1491         * libitm.texi: Update user action section, add description of nesting.
1492
1493 2011-07-28  Torvald Riegel  <triegel@redhat.com>
1494
1495         * libitm_i.h: Add closed nesting as restart reason.
1496         * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Same.
1497
1498 2011-07-28  Torvald Riegel  <triegel@redhat.com>
1499
1500         * useraction.cc: Use vector instead of list to store actions.
1501         Also support partial rollbacks for closed nesting.
1502         * libitm_i.h (GTM::gtm_transaction::user_action): Same.
1503         * beginend.cc: Same.
1504
1505 2011-07-28  Torvald Riegel  <triegel@redhat.com>
1506
1507         * dispatch.h (GTM::abi_dispatch): Add can_run_uninstrumented_code and
1508         closed_nesting flags, as well as a closed nesting alternative.
1509         * method-serial.cc: Same.
1510         (serial_dispatch): Renamed to serialirr_dispatch.
1511         (GTM::dispatch_serialirr): Same.
1512         (serial_dispatch_ul): Renamed to serial_dispatch.
1513         (GTM::dispatch_serial): Same.
1514
1515 2011-07-28  Torvald Riegel  <triegel@redhat.com>
1516
1517         * libitm.h (_ITM_codeProperties): Change pr_hasElse to the ABI's value.
1518
1519 2011-07-28  Torvald Riegel  <triegel@redhat.com>
1520
1521         * aatree.h (aa_tree::remove): New.
1522         (aa_tree::operator new): Add placement new.
1523
1524 2011-07-02  Torvald Riegel  <triegel@redhat.com>
1525
1526         * containers.h: New file.
1527         * util.cc (xmalloc, xrealloc): Accept cacheline-alloc flag.
1528         * libitm_i.h (xmalloc, xrealloc): Moved declarations from here ...
1529         * common.h: ... to here.
1530         (local_undo): Use GTM::vector for gtm_transaction::local_undo.
1531         * local.cc: Same.
1532
1533 2011-06-30  Torvald Riegel  <triegel@redhat.com>
1534
1535         * libitm_i.h (STATE_ABORTING): Remove.
1536         * beginend.cc (_ITM_abortTransaction): Same.
1537         (GTM::gtm_transaction::trycommit_and_finalize): Same.
1538         * libitm.h (_ITM_registerThrownObject, _ITM_tryCommitTransaction): Remove.
1539         (_ITM_rollbackTransaction): Remove.
1540         * beginend.cc: Same.
1541         * libitm.map: Same.
1542         * libitm.texi: Document these ABI changes.
1543
1544 2011-06-30  Torvald Riegel  <triegel@redhat.com>
1545
1546         * libitm.texi: New file.
1547         * Makefile.am: Add libitm.texi.
1548         * Makefile.in: Rebuild.
1549
1550 2011-06-30  Torvald Riegel  <triegel@redhat.com>
1551
1552         * libitm_i.h: Move parts to common.h and dispatch.h.
1553         * common.h: New file.
1554         * dispatch.h: New file, new dispatch class.
1555         Rename GTM::abi_dispatch::lock_type to ls_modifier.
1556         RenameGTM::abi_dispatch::NOLOCK to NONTXNAL.
1557         * beginend.cc (GTM::gtm_transaction::begin_transaction): Delegate mode
1558         decision to retry.cc.
1559         * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Use serial mode
1560         only.
1561         (GTM::gtm_transaction::decide_begin_dispatch): Same.
1562         * method-serial.cc: Adapt to new dispatch. Add serial mode with undo
1563         logging.
1564         * barrier.cc: Use new barriers definitions.
1565         (abi_dispatch::memmove_overlap_check): New.
1566         * config/x86/x86_sse.cc: Same.
1567         * config/x86/x86_avx.cc: Same.
1568         * Makefile.am: Don't build readonly and wbetl methods, memset.cc and
1569         memcpy.cc.
1570         * Makefile.in: Rebuild.
1571         * method-readonly.cc: Remove.
1572         * method-wbetl.cc: Rename GTM::abi_dispatch::lock_type to ls_modifier.
1573         Rename GTM::abi_dispatch::NOLOCK to NONTXNAL.
1574
1575 2011-06-30  Torvald Riegel  <triegel@redhat.com>
1576
1577         * alloc_c.cc (_ITM_dropReferences): Don't support it anymore.
1578         * testsuite/libitm.c++/dropref.C: _ITM_dropReferences is expected to fail.
1579         * testsuite/libitm.c/dropref-2.c: Same.
1580         * testsuite/libitm.c/dropref.c: Same.
1581
1582 2011-06-30  Torvald Riegel  <triegel@redhat.com>
1583
1584         * config/generic/tls.h (gtm_disp): Rename to abi_disp.
1585         * config/generic/tls.h (set_gtm_disp): Rename to set_abi_disp.
1586         * libitm_i.h: Rename gtm_dispatch to abi_dispatch.
1587         * alloc_c.cc: Same.
1588         * barrier.tpl: Same.
1589         * beginend.c: Same.
1590         * config/generic/tls.h: Same.
1591         * config/x86/tls.h: Same.
1592         * libitm_i.h: Same.
1593         * memcpy.cc: Same.
1594         * memset.cc: Same.
1595         * method-readonly.cc: Same.
1596         * method-serial.cc: Same.
1597         * method-wbetl.cc: Same.
1598         * retry.cc: Same.
1599
1600 2011-03-03  Richard Henderson  <rth@redhat.com>
1601
1602         * config/posix/rwlock.cc (write_upgrade): Add missing case.
1603         From Patrik Marlier <patrick.marlier@unine.ch>.
1604
1605 2011-02-03  Richard Henderson  <rth@redhat.com>
1606
1607         * acinclude.m4 (LIBITM_CHECK_SIZE_T_MANGLING): New.
1608         * configure.ac: Use it.
1609         * configure, config.h.in: Rebuild.
1610         * alloc_cpp.cc (_ZnwX): Use MANGLE_SIZE_T in constructing the name.
1611         (_ZnaX, _ZnwXRKSt9nothrow_t, _ZnaXRKSt9nothrow_t, _ZGTtnwX,
1612         _ZGTtnaX, _ZGTtnwXRKSt9nothrow_t, _ZGTtnaXRKSt9nothrow_t): Likewise.
1613         * libitm.map: Use wildcards to match size_t mangling.
1614
1615 2010-12-14  Richard Henderson  <rth@redhat.com>
1616
1617         * beginend.cc (GTM::gtm_transaction::begin_transaction): Allocate
1618         blocks of TIDs per thread.
1619         * config/generic/tls.h (struct gtm_thread): Add local_tid member.
1620         (setup_gtm_thr): Return the thread structure.
1621         * config/x86/tls.h (setup_gtm_thr): Likewise.
1622
1623 2010-12-14  Richard Henderson  <rth@redhat.com>
1624
1625         * clone.cc (table_lock): Remove.
1626         (find_clone): Don't take it.
1627         (ExcludeTransaction): New helper class.
1628         (_ITM_registerTMCloneTable): Use it.
1629         (_ITM_deregisterTMCloneTable): Likewise.
1630
1631 2010-12-14  Richard Henderson  <rth@redhat.com>
1632
1633         * config/x86/tls.h: New file.
1634
1635 2010-07-15  Richard Henderson  <rth@redhat.com>
1636
1637         * Makefile.am (AM_CXXFLAGS): Add -funwind-tables.
1638         * Makefile.in: Rebuild.
1639
1640 2010-07-13  Aldy Hernandez  <aldyh@redhat.com>
1641
1642         * method-wbetl.cc (trydropreference): Fix source line.
1643
1644 2010-07-13  Aldy Hernandez  <aldyh@redhat.com>
1645
1646         * libitm.h: Add comment.
1647         * libitm_i.h (begin_transaction): Add ITM_REGPARM.
1648
1649 2010-07-07  Aldy Hernandez  <aldyh@redhat.com>
1650
1651         * configure.ac: Call LIBITM_CHECK_64BIT_SYNC_BUILTINS.
1652         * beginend.cc (begin_transaction): If 64-bit sync builtins are not
1653         available, use pthread mutexes.
1654         * acinclude.m4 (LIBITM_CHECK_64BIT_SYNC_BUILTINS): New.
1655         * config.h.in: Regenerate.
1656         * configure: Regenerate.
1657
1658 2010-07-06  Aldy Hernandez  <aldyh@redhat.com>
1659
1660         * libitm.h (ITM_PURE): Define.
1661         Declare _ITM_malloc, _ITM_calloc, and _ITM_free.
1662
1663 2010-06-28  Aldy Hernandez  <aldyh@redhat.com>
1664
1665         * method-wbetl.cc (class wbetl_dispatch): Add trydropreference.
1666         (validate): Add comment.
1667         (trydropreference): New.
1668         * method-readonly.cc (class readonly_dispatch): Add
1669         trydropreference.
1670         * alloc_c.cc (_ITM_dropReferences): Remove const attribute.
1671         Call trydropreference().
1672         * libitm.h (_ITM_dropReferences): Remove const attribute.
1673         * method-serial.cc (class serial_dispatch): Add trydropreference.
1674         * libitm_i.h (struct gtm_dispatch): Add trydropreference.
1675
1676 2010-06-28  Aldy Hernandez  <aldyh@redhat.com>
1677
1678         * memcpy.cc (do_memcpy): Comment.
1679
1680 2010-06-25  Aldy Hernandez  <aldyh@redhat.com>
1681
1682         * barrier.tpl: Add comments throughout.
1683
1684 2010-06-24  Aldy Hernandez  <aldyh@redhat.com>
1685
1686         * method-wbetl.cc (struct w_entry): Add comments.
1687         (trycommit): Same.
1688         (rollback): Same.
1689
1690 2010-06-24  Aldy Hernandez  <aldyh@redhat.com>
1691
1692         * alloc_c.cc (_ITM_dropReferences): New.
1693         * libitm.map (_ITM_dropReferences): Add.
1694         * libitm.h (_ITM_dropReferences): Add transaction_pure attribute.
1695         * libitm_i.h (struct gtm_transaction): Declare
1696         drop_references_allocations and drop_references_local.
1697         * local.cc (rollback_local): Ignore memory when applicable.
1698         (drop_references_local): New.
1699
1700 2010-06-23  Richard Henderson  <rth@redhat.com>
1701
1702         * barrier.tpl, beginend.cc, clone.cc, tls.h, memcpy.cc,
1703         memset.cc, method-serial.cc: Revert the 2010-06-16 change.
1704         * config/x86/target.h (struct gtm_jmpbuf): Change CFA type to void*.
1705         * config/alpha/target.h: Likewise.
1706         * config/generic/tls.cc (gtm_mask_stack): Use it.
1707
1708 2010-06-23  Richard Henderson  <rth@redhat.com>
1709
1710         * config/posix/cachepage.cc (gtm_cacheline_page::operator new): Use
1711         a mutex instead of trying a lock-free compare-and-swap on the list.
1712         (gtm_cacheline_page::operator delete): Likewise.
1713
1714 2010-06-16  Richard Henderson  <rth@redhat.com>
1715
1716         * method-wbetl.cc (wbetl_dispatch::trycommit): Discard changes
1717         that overlap the libitm stack.
1718         * barrier.tpl: Mark incoming stack.
1719         * beginend.cc (_ITM_rollbackTransaction, _ITM_abortTransaction,
1720         _ITM_commitTransaction, _ITM_commitTransactionEH): Likewise.
1721         * clone.cc (_ITM_getTMCloneOrIrrevocable): Likewise.
1722         * memcpy.cc, memset.cc: Likewise.
1723         * method-serial.cc (_ITM_changeTransactionMode): Likewise.
1724         * config/generic/tls.h (gtm_thread): Add stack_top member.
1725         (gtm_stack_top, set_gtm_stack_top, struct gtm_stack_marker): New.
1726         * libitm_i.h (gtm_mask_stack): Declare.
1727         * config/generic/tls.cc: New file.
1728         * Makefile.am (libitm_la_SOURCES): Add it.
1729         (AM_CXXFLAGS): Turn off exceptions.
1730         * Makefile.in: Rebuild.
1731
1732 2010-06-16  Richard Henderson  <rth@redhat.com>
1733
1734         * alloc.cc (struct gtm_alloc_action): Move definition ...
1735         * libitm_i.h: ... here.
1736         (class gtm_transaction): Declare new and delete.
1737         * beginend.cc (alloc_tx): Reformulate as operator new.
1738         (free_tx): Reformulate as operator delete.
1739         * config/generic/tls.h (gtm_thread): Change free_tx member to void *.
1740
1741 2010-06-11  Richard Henderson  <rth@redhat.com>
1742
1743         * clone.cc (clone_entry_compare): Fix typo.
1744         From Patrik Marlier <patrick.marlier@unine.ch>.
1745
1746 2010-05-13  Richard Henderson  <rth@redhat.com>
1747
1748         * alloc_c.cc (_ITM_malloc, _ITM_calloc, _ITM_free): Wrap functions
1749         in extern "C".
1750
1751 2010-05-07  Aldy Hernandez  <aldyh@redhat.com>
1752
1753         * libitm_i.h (struct gtm_transaction): Remove
1754         get_allocation_size.
1755         (record_allocation): Remove size parameter.
1756         * libitm.map (_ITM_realloc): Remove.
1757         * alloc_c.cc (_ITM_realloc): Remove.
1758         (_ITM_malloc): Remove size argument to record_allocation.
1759         (_ITM_calloc): Same.
1760         * alloc_cpp.cc (_ZGTtnwm): Same.
1761         (_ZGTtnwmRKSt9nothrow_t): Same.
1762         (_ZGTtnam): Same.
1763         (_ZGTtnamRKSt9nothrow_t): Same.
1764         * alloc.cc (struct gtm_alloc_action): Remove size.
1765         (get_allocation_size): Remove.
1766         (commit_allocations): Add comment.
1767         (record_allocation): Remove size parameter.
1768         (forget_allocation): Remove set of size.
1769
1770 2010-04-19  Aldy Hernandez  <aldyh@redhat.com>
1771
1772         * Makefile.am (abi_version): New.
1773         (AM_CXXFLAGS): Pass abi_version.
1774         * Makefile.in: Regenerate.
1775         * config/x86/unaligned.h: Remove always_inline kludge for vectors.
1776
1777 2010-04-06  Aldy Hernandez  <aldyh@redhat.com>
1778
1779         * clone.cc (_ITM_getTMCloneOrIrrevocable): Rename from
1780         _ITM_getTMCloneOrIrrevokable.
1781         * libitm.h (_ITM_getTMCloneOrIrrevocable): Same.
1782         * libitm.map (_ITM_getTMCloneOrIrrevocable): Same.
1783
1784 2010-03-26  Aldy Hernandez  <aldyh@redhat.com>
1785
1786         * configure.ac: Remove Linux futex support.
1787         * configure.tgt (config_path): Same.
1788         * Makefile.am: Same.
1789         * config/linux: Remove entire directory.
1790         * configure: Rebuild.
1791         * Makefile.in: Rebuild.
1792         * testsuite/Makefile.in: Rebuild.
1793
1794 2010-03-09  Aldy Hernandez  <aldyh@redhat.com>
1795
1796         * retry.cc (decide_retry_strategy): Set state to STATE_SERIAL when
1797         switching to serial mode.
1798         * beginend.cc (trycommit_and_finalize): Unlock serial_lock.
1799
1800 2010-03-03  Aldy Hernandez  <aldyh@redhat.com>
1801
1802         * configure.tgt: Add emacs -*- tags.
1803         * barrier.tpl: Same.
1804
1805 2010-02-23  Aldy Hernandez  <aldyh@redhat.com>
1806
1807         * Makefile.am: Rename serial.cc to method-serial.cc.
1808         * Makefile.in: Regenerate with automake 1.11.1.
1809         * testsuite/Makefile.in: Same.
1810         * aclocal.m4: Regenerate with aclocal 1.11.1.
1811         * method-serial.cc: Rename from serial.cc.
1812         * libitm_i.h (struct gtm_transaction): Update comment on
1813         serialirr_mode.
1814
1815 2010-02-22  Aldy Hernandez  <aldyh@redhat.com>
1816
1817         * libitm_i.h (GTM_longjmp): Add ITM_REGPARM.
1818         * config/linux/rwlock.h (class gtm_rwlock): Add comments.
1819
1820 2010-02-11  Aldy Hernandez  <aldyh@redhat.com>
1821
1822         * configure: Rebuild.
1823
1824 2009-11-12  Richard Henderson  <rth@redhat.com>
1825
1826         * Rewrite everything in C++.
1827
1828 2009-11-03  Richard Henderson  <rth@redhat.com>
1829
1830         * config/x86/x86_sse.c, config/x86/x86_avx.c: New files.
1831         * Makefile.am (libitm_la_SOURCES): Add them.
1832         * configure.ac (ARCH_X86): New conditional.
1833         * Makefile.in, configure: Rebuild.
1834         * configure.tgt: Set up ARCH; do cflags setup at the same time.
1835         Move futex setup into "other system configury" case.
1836         * local.c (rollback_local): Merge into ...
1837         (GTM_rollback_local): ... here.
1838         (GTM_LB): Rename from GTM_alloc_local; do the memcpy here.
1839         (_ITM_LB): Define as an alias to GTM_LB.
1840
1841 2009-11-03  Richard Henderson  <rth@redhat.com>
1842
1843         * method-readonly.c: New file.
1844         * Makefile.am (libitm_la_SOURCES): Add it.
1845         * Makefile.in: Rebuild.
1846         * beginend.c (gtm_stmlock_array, gtm_clock): New.
1847         (GTM_begin_transaction): Use dispatch_readonly for read-only txn.
1848         * libitm_i.h (gtm_stmlock, gtm_version): Move from method-wbetl.c.
1849         (GTM_VERSION_MAX, GTM_VERSION_INVALID, gtm_stmlock_owned_p,
1850         gtm_stmlock_set_owned, gtm_stmlock_get_addr,
1851         gtm_stmlock_get_version, gtm_stmlock_set_version, LOCK_ARRAY_SIZE,
1852         gtm_stmlock_array, gtm_get_stmlock, gtm_clock, RESTART_NOT_READONLY,
1853         gtm_get_clock, gtm_inc_clock): New.
1854         * method-wbetl.c (gtm_version, gtm_stmlock, OWNED_MASK, VERSION_MAX,
1855         LOCK_GET_OWNED, LOCK_SET_ADDR, LOCK_GET_ADDR, LOCK_GET_TIMESTAMP,
1856         LOCK_SET_TIMESTAMP, LOCK_ARRAY_SIZE, LOCK_MASK, LOCK_IDX, GET_LOCK,
1857         locks, gclock, CLOCK, GET_CLOCK, FETCH_AND_INC_CLOCK): Remove and
1858         replace uses with new libitm_i.h symbols.
1859         (dispatch_wbetl): Rename from wbetl_dispatch.
1860         * retry.c (GTM_decide_retry_strategy): If RESTART_NOT_READONLY, move
1861         away from dispatch_readonly; abort if the beginTransaction call
1862         asserted that the transaction was readonly.
1863
1864 2009-11-03  Richard Henderson  <rth@redhat.com>
1865
1866         * memset.c: New file.
1867         * Makefile.am (libitm_la_SOURCES): Add it.
1868         * Makefile.in: Rebuild.
1869         * testsuite/libitm.c/memset-1.c: New.
1870
1871 2009-11-03  Richard Henderson  <rth@redhat.com>
1872
1873         * dispatch.c: Remove file.
1874         * useraction.c (struct gtm_user_action): Move from libitm.h.
1875         * serial.c (GTM_null_read_lock, GTM_null_write_lock): New.
1876         (serial_memset, serial_memmove, serial_memcpy): Remove.
1877         (serial_W*, serial_R*): Remove.
1878         (serial_dispatch): Update to match.
1879         * configure.ac: Move Werror down below configure checks.  Don't
1880         check for sys/loadavg.h, do check for malloc.h.  Don't check for
1881         getloadavg and clock_gettime; do check for memalign, posix_memalign.
1882         Use GCC_AC_FUNC_MMAP_BLACKLIST
1883         * libitm.h: Split out all internal items to...
1884         * libitm_i.h: ... here.  New file.
1885         * copymask.c: New file.
1886         * local.c (struct gtm_local_undo): Move from libitm.h.
1887         (GTM_alloc_local): Rename from alloc_local; export.
1888         * memcpy.c: New file.
1889         * alloc_c.c (_ITM_realloc): Use _ITM_memcpyRnWt directly.
1890         * config/posix/page.c: New file.
1891         * config/posix/target_tls.h: Remove file.
1892         * barrier.c: New file.
1893         * Makefile.am (libitm_la_SOURCES): Add barrier.c, memcpy.c,
1894         copymask.c, page.c.
1895         * alloc.c (struct gtm_alloc_action): Move from libitm.h.
1896         * method-wbetl.c: Rewrite for new cacheline methods.
1897         * Makefile.in, configure, testsuite/Makefile.in, config.h.in: Rebuild.
1898
1899         * config/alpha/sjlj.S: Fix typo.
1900         * config/alpha/target_i.h: Copy functions from alpha/target.h.
1901         * config/alpha/copymask.c: New file.
1902         * config/alpha/target.h (CACHELINE_SIZE): New.
1903         (STRICT_ALIGNMENT, PAGE_SIZE, FIXED_PAGE_SIZE): New.
1904
1905         * config/x86/target_i.h: Copy functions from x86/target.h.
1906         * config/x86/copymask.c: New file.
1907         * config/x86/target.h (_ITM_ALL_TARGET_TYPES): Remove.
1908         (CACHELINE_SIZE, STRICT_ALIGNMENT): New.
1909         (PAGE_SIZE, FIXED_PAGE_SIZE): New.
1910         * config/x86/target_tls.h: Move contents to target_i.h.
1911
1912         * testsuite/libitm.c/clone-1.c: Include libitm.h.
1913         * testsuite/libitm.c/memcpy-1.c: New.
1914
1915 2009-10-22  Richard Henderson  <rth@redhat.com>
1916
1917         * Makefile.am (CCAS, CCASFLAGS, LTCCASCOMPILE): Remove.
1918         (AM_CCASFLAGS): New.
1919         * configure.ac: Add AM_PROG_AS.  Use m4_rename_force for
1920         saving/restoring _AC_ARG_VAR_PRECIOUS.
1921         * Makefile.in, aclocal.m4, config.h.in, configure,
1922         testsuite/Makefile.in: Rebuild with automake 1.11; autoconf 2.64.
1923
1924 2009-10-22  Richard Henderson  <rth@redhat.com>
1925
1926         * testsuite/*: Update for new compiler syntax.
1927
1928 2009-10-21  Richard Henderson  <rth@redhat.com>
1929
1930         * libitm.h (_ITM_abortReason): Add outerAbort.
1931
1932 2009-08-03  Richard Henderson  <rth@redhat.com>
1933
1934         * libitm.map (_ITM_commitTransactionEH, _ITM_cxa_allocate_exception,
1935         _ITM_cxa_begin_catch, _ITM_cxa_end_catch, _ITM_cxa_throw): Export.
1936         * method-wbetl.c (struct w_entry): Remove mask.
1937         (wbetl_write, wbetl_load): Return pointer to word containing the data;
1938         adjust all callers.
1939
1940 2009-07-22  Richard Henderson  <rth@redhat.com>
1941
1942         * eh_cpp.c: New file.
1943         * Makefile.am (libitm_la_SOURCES): Add it.
1944         * Makefile.in: Rebuild.
1945         * beginend.c (GTM_rollback_transaction): Undo exception state.
1946         (GTM_trycommit_transaction): Mark inline.
1947         (GTM_trycommit_and_finalize_transaction): Split out from ...
1948         (_ITM_commitTransaction): ... here.
1949         (_ITM_commitTransactionEH): New function.
1950         * libitm.h (struct gtm_transaction): Add cxa_catch_count,
1951         cxa_unthrown, eh_in_flight; reorder.
1952
1953         * testsuite/libitm.c++/c++.exp: New.
1954         * testsuite/libitm.c++/eh-1.C: New.
1955
1956         * aatree.c (aa_free): Remove REGPARM.
1957         * aatree.h: Remove all REGPARM.
1958
1959 2009-07-18  Richard Henderson  <rth@redhat.com>
1960
1961         * aatree.c, aatree.h, alloc.c, alloc_c.c, alloc_cpp.c: New files.
1962         * Makefile.am (libitm_la_SOURCES): Add them.
1963         * Makefile.in: Rebuild.
1964         * beginend.c (GTM_rollback_transaction): Use GTM_commit_allocations.
1965         (GTM_trycommit_transaction): Likewise.
1966         * libitm.h: Include aatree.h
1967         (struct gtm_alloc_action): New.
1968         (struct gtm_transaction): Add alloc_actions.
1969         (GTM_record_allocation, GTM_forget_allocation): Declare.
1970         (GTM_get_allocation_size, GTM_commit_allocations): Declare.
1971         * libitm.map (_ITM_malloc, _ITM_calloc, _ITM_realloc, _ITM_free,
1972         _ZGTtnwm, _ZGTtnam, _ZGTtdlPv, _ZGTtdaPv, _ZGTtnwmRKSt9nothrow_t,
1973         _ZGTtnamRKSt9nothrow_t, _ZGTtdlPvRKSt9nothrow_t,
1974         _ZGTtdaPvRKSt9nothrow_t): Export.
1975
1976 2009-07-18  Richard Henderson  <rth@redhat.com>
1977
1978         * target_tls.h: Move ...
1979         * config/posix/target_tls.h: ... here.
1980
1981 2009-07-07  Richard Henderson  <rth@redhat.com>
1982
1983         * config/x86/target.h (atomic_write_barrier): Use sfence if available.
1984
1985 2009-07-07  Richard Henderson  <rth@redhat.com>
1986
1987         * Update to GPL3.
1988
1989 2009-07-07  Richard Henderson  <rth@redhat.com>
1990
1991         * libitm.h (struct gtm_transaction): Widen id to _ITM_transactionId_t.
1992         * beginend.c (global_tid): Widen to _ITM_transactionId_t.
1993
1994         * configure.tgt: Don't use -ftls-model for x86 linux.
1995         * libitm.h: Include target.h after standard includes.
1996         (_gtm_thr): Rename from gtm_thr.
1997         (setup_gtm_thr, gtm_thr, gtm_tx, set_gtm_tx): New.
1998         (gtm_disp, set_gtm_disp): New.
1999         * beginend.c, dispatch.c, local.c, method-wbetl.c, query.c,
2000         retry.c, serial.c, useraction.c: Use accessor functions throughout.
2001         * config/alpha/target_tls.h, config/x86/target_tls.h: New files.
2002
2003 2009-07-07  Richard Henderson  <rth@redhat.com>
2004
2005         * config/linux/rwlock.c (EZ): New define.  Use it throughout.
2006
2007 2009-07-06  Richard Henderson  <rth@redhat.com>
2008
2009         * libitm.h (_ITM_SRCLOCATION_DECL_1, _ITM_SRCLOCATION_DECL_2): Remove.
2010         (_ITM_SRCLOCATION_DEFN_1, _ITM_SRCLOCATION_DEFN_2): Remove.
2011         (_ITM_beginTransaction): Take variadic arguments.
2012         (_ITM_registerThrownObject): Declare.
2013         * beginend.c, serial.c: Update.
2014         * libitm.map: Add _ITM_registerThrownObject.
2015
2016 2009-01-28  Richard Henderson  <rth@redhat.com>
2017
2018         * Makefile.am (libitm_la_SOURCES): Add clone.c.
2019         * Makefile.in: Rebuild.
2020         * beginend.c (_ITM_abortTransaction): Abort if irrevokable.
2021         (GTM_restart_transaction): Fix uninstrumented code check.
2022         * retry.c (GTM_decide_retry_strategy): Add serial check.
2023         * serial.c (GTM_serialmode): Add irrevokable variable.  Don't
2024         automatically go irrevokable when in serial mode.
2025         * clone.c: New file.
2026         * libitm.h, libitm.map: Update.
2027
2028 2009-01-27  Richard Henderson  <rth@redhat.com>
2029
2030         * Makefile.am (LTCCASCOMPILE): Define.
2031         (libitm_la_SOURCES): Add methid-wbetl.c.
2032         * testsuite/Makefile.am: New
2033         * configure.ac: Add testsuite/Makefile.
2034         * Makefile.in, testsuite/Makefile.in, configure: Regenerate.
2035         * beginend.c (GTM_begin_transaction): Install wbetl_dispatch.
2036         (_ITM_abortTransaction): Finalize implementation method; pass
2037         transaction properties to longjmp.
2038         (GTM_restart_transaction): Split out from ...
2039         (_ITM_commitTransaction): ... here.
2040         * config/linux/x86/futex_bits.h (cpu_relax, atomic_write_barrier):
2041         Move to config/x86/target.h.
2042         * config/linux/alpha/futex_bits.h: New.
2043         * config/x86/sjlj.S (GTM_longjmp): Fix 64-bit input register.
2044         * config/x86/target.h: Disable target types for 32-bit.
2045         * config/alpha/sjlj.S, config/alpha/target.h: New.
2046         * libitm.h (struct gtm_dispatch): Add init, fini.
2047         (enum restart_reason): New.
2048         (struct gtm_transaction): Add method and restarts.
2049         * retry.c (GTM_decide_retry_strategy): Implement.
2050         * serial.c (serial_init, serial_fini): New.
2051         (GTM_serialmode): Finialize outgoing method.
2052         * method-wbetl.c: New.
2053
2054 2008-12-09  Richard Henderson  <rth@redhat.com>
2055
2056         * config/x86/target.h (_ITM_ALL_TARGET_TYPES, _ITM_TYPE_ATTR): New.
2057         * configure.tgt (i386-*, x86_64-*): Don't force SSE.
2058         * dispatch.c (_ITM_##R##T, _ITM_##W##T): Use _ITM_TYPE_ATTR.
2059         * libitm.h (_ITM_ALL_TARGET_TYPES, _ITM_TYPE_ATTR): Provide default.
2060         (_ITM_TYPE_M64, _ITM_TYPE_M128, _ITM_TYPE_M256): Move to x86 header.
2061         (_ITM_ALL_TYPES): Use _ITM_ALL_TARGET_TYPES.
2062         * local.c (_ITM_L##T): Use _ITM_TYPE_ATTR.
2063         * serial.c (serial_R##T, serial_W##T): Likewise.
2064
2065 2008-11-21  Richard Henderson  <rth@redhat.com>
2066
2067         * Initial commit.
2068 \f
2069 Copyright (C) 2008-2018 Free Software Foundation, Inc.
2070
2071 Copying and distribution of this file, with or without modification,
2072 are permitted in any medium without royalty provided the copyright
2073 notice and this notice are preserved.