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