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