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