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