]> git.ipfire.org Git - thirdparty/gcc.git/blame - libitm/ChangeLog
real: Fix roundeven on inf/nan [PR93663]
[thirdparty/gcc.git] / libitm / ChangeLog
CommitLineData
e8e66971
MR
12020-01-24 Maciej W. Rozycki <macro@wdc.com>
2
3 * configure.ac: Handle `--with-toolexeclibdir='.
4 * Makefile.in: Regenerate.
5 * aclocal.m4: Regenerate.
6 * configure: Regenerate.
7 * testsuite/Makefile.in: Regenerate.
8
7e7065b9
JJ
92020-01-01 Jakub Jelinek <jakub@redhat.com>
10
8d9254fc
JJ
11 Update copyright years.
12
7e7065b9
JJ
13 * libitm.texi: Bump @copying's copyright year.
14
00484365
SN
152019-12-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
16
17 PR libgomp/91938
18 * configure.tgt: Avoid IE tls on *-*-musl*.
19
e9085da5
MR
202019-09-27 Maciej W. Rozycki <macro@wdc.com>
21
22 * configure: Regenerate.
23
b1e21e5a
CL
242019-09-10 Christophe Lyon <christophe.lyon@st.com>
25
a360a359
CL
26 * config/arm/sjlj.S (ldaddr): Add FDPIC support.
27
282019-09-10 Christophe Lyon <christophe.lyon@st.com>
29
30 * configure.tgt: Handle *-*-uclinux*.
31 * configure: Regenerate.
b1e21e5a 32
3c086f8d
FW
332019-09-06 Florian Weimer <fweimer@redhat.com>
34
35 * configure: Regenerate.
36
c6c2d1bc
CLT
372019-09-03 Chung-Lin Tang <cltang@codesourcery.com>
38
39 PR other/79543
40 * acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Fix GNU ld --version
41 scanning to conform to the GNU Coding Standards.
42 * configure: Regenerate.
43
061a799b
JJ
442019-05-03 Jakub Jelinek <jakub@redhat.com>
45
46 * Makefile.am (finclude): Remove.
47 * Makefile.in: Regenerated.
48
a5544970
JJ
492019-01-01 Jakub Jelinek <jakub@redhat.com>
50
51 Update copyright years.
52
3f27508c
JJ
532019-01-01 Jakub Jelinek <jakub@redhat.com>
54
55 * libitm.texi: Bump @copying's copyright year.
56
784417d1
JJ
572018-12-16 Jakub Jelinek <jakub@redhat.com>
58
59 PR c++/88482
60 * eh_cpp.cc (__cxa_throw): Change DEST argument type from
61 void * to void (*) (void *).
62 (_ITM_cxa_throw): Likewise.
63 * libitm.h (_ITM_cxa_throw): Likewise.
64 * libitm.texi (_ITM_cxa_throw): Likewise.
65
d1573fe0
PB
662018-12-13 Peter Bergner <bergner@linux.ibm.com>
67
68 * config/powerpc/target.h (htm_available): Add support for
69 PPC_FEATURE2_HTM_NO_SUSPEND. Use __builtin_cpu_supports if available.
70
22e05272
JM
712018-10-31 Joseph Myers <joseph@codesourcery.com>
72
73 PR bootstrap/82856
74 * Makefile.am: Include multilib.am.
75 (AUTOMAKE_OPTIONS): Add info-in-builddir.
76 (CLEANFILES): Remove libitm.info.
77 * configure.ac: Remove AC_PREREQ.
78 * testsuite/Makefile.am (RUNTEST): Remove quotes.
79 * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
80 Regenerate.
81
1f82422a
NK
822018-10-30 Nicholas Krause <xerofoify@gmail.com>
83
a2e0398a 84 PR libitm/86293
1f82422a
NK
85 * method-serial.cc: Mark varible as potentially unused
86 to silence warning.
87
f6a9dfd3
ST
882018-08-03 Sergei Trofimovich <slyfox@gentoo.org>
89
90 * config/sh/sjlj.S: Adjust to use PIC vs normal code to avoid
91 absolute relocation in a shared library.
92
97cad511
L
932018-06-12 H.J. Lu <hongjiu.lu@intel.com>
94
95 PR libitm/85988
96 * config/linux/x86/tls.h (SEG_READ): Use the offset of
97 __private_tm as base.
98 (SEG_WRITE): Likewise.
99 (SEG_ENCODE_WRITE): Correct the offset of pointer_guard for x32.
100 (gtm_thr): Replace SEG_READ(10) with SEG_READ(0).
101 (set_gtm_thr): Replace SEG_WRITE(10) with SEG_WRITE(0).
102 (abi_disp): Replace SEG_DECODE_READ(11) with SEG_DECODE_READ(1).
103 (set_abi_disp): Replace SEG_ENCODE_WRITE(11) with
104
b46b715d
JM
1052018-05-17 Jason Merrill <jason@redhat.com>
106
107 * beginend.cc (save): Disable -Werror=deprecated-copy.
108
9220b511
TV
1092018-05-02 Tom de Vries <tom@codesourcery.com>
110
111 PR testsuite/85106
112 * testsuite/lib/libitm.exp: Include scanltranstree.exp.
113
6c3c13c1
TV
1142018-05-02 Tom de Vries <tom@codesourcery.com>
115
116 PR testsuite/85106
117 * testsuite/lib/libitm.exp: Include scanwpaipa.exp.
118
ffc2fc06
L
1192018-04-24 H.J. Lu <hongjiu.lu@intel.com>
120
121 * config/x86/sjlj.S (_ITM_beginTransaction): Add
122 (__CET__ & 2) != 0 check for shadow stack.
123 (GTM_longjmp): Likewise.
124
7b47ecf2
L
1252018-04-24 H.J. Lu <hongjiu.lu@intel.com>
126
127 * configure: Regenerated.
128
0ef9f21d
L
1292018-04-23 H.J. Lu <hongjiu.lu@intel.com>
130
131 PR target/85489
132 * config/x86/sjlj.S (GTM_longjmp): Replace jle/jg with jbe/ja.
133
a0e1df88
JJ
1342018-04-19 Jakub Jelinek <jakub@redhat.com>
135
136 * configure: Regenerated.
137
001ddaa8
DM
1382018-04-18 David Malcolm <dmalcolm@redhat.com>
139
140 PR jit/85384
141 * configure: Regenerate.
142
14e335ed
IT
1432018-02-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
144
145 PR target/84148
146 * configure: Regenerate.
147
65e6aea3
JJ
1482018-01-03 Jakub Jelinek <jakub@redhat.com>
149
85ec4feb
JJ
150 Update copyright years.
151
65e6aea3
JJ
152 * libitm.texi: Bump @copying's copyright year.
153
c51081fc
IT
1542017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
155
156 * Makefile.in: Regenerate.
157 * acinclude.m4: Add enable.m4 and cet.m4.
158 * config/x86/sjlj.S: Include cet.h.
159 (_ITM_beginTransaction): Add _CET_ENDBR.
160 Save Shadow Stack pointer.
161 (GTM_longjmp): Add _CET_ENDBR. Restore Shadow Stack pointer.
162 * config/x86/target.h (struct gtm_jmpbuf):
163 Add new field for Shadow Stack pointer.
164 * configure: Regenerate.
165 * configure.ac: Set CET_FLAGS. Update XCFLAGS.
166 * configure.ac: Update libtool_VERSION for x86.
167 * testsuite/Makefile.in: Regenerate.
168
cc03e55b
IT
1692017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
170
171 * libitm/config/x86/target.h: Add new field (ssp).
172 * libitm/config/x86/sjlj.S: Change offsets.
173
62ffe920
RO
1742017-05-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
175
176 * testsuite/lib/libitm.exp: Load scanlang.exp.
177
5764ee3c
JW
1782017-04-03 Jonathan Wakely <jwakely@redhat.com>
179
180 * libitm_i.h (sutrct gtm_thread): Fix typo in comment.
181
73aa401e
JJ
1822017-01-21 Jakub Jelinek <jakub@redhat.com>
183
184 PR other/79046
185 * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
186 of cat to get version from BASE-VER file.
187 * testsuite/Makefile.in: Regenerated.
188
16a34ca6
UB
1892017-01-19 Uros Bizjak <ubizjak@gmail.com>
190
191 * config/x86/target.h (htm_available): Determine vendor from
192 __get_cpuid_max return. Use signature_INTEL_ebx. Cleanup.
193
f8a94453
TR
1942017-01-18 Torvald Riegel <triegel@redhat.com>
195
196 * config/x86/target.h (htm_available): Add check for some processors
197 on which TSX is broken.
198
3c36aa6b
JJ
1992017-01-17 Jakub Jelinek <jakub@redhat.com>
200
201 PR other/79046
202 * configure.ac: Add GCC_BASE_VER.
203 * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
204 get version from BASE-VER file.
205 * testsuite/Makefile.in: Regenerated.
206 * configure: Regenerated.
207 * Makefile.in: Regenerated.
208
8f56cb51
AM
2092017-01-04 Alan Modra <amodra@gmail.com>
210
211 * Makefile.in: Regenerate.
212 * testsuite/Makefile.in: Regenerate.
213
c1a9c369
JJ
2142017-01-01 Jakub Jelinek <jakub@redhat.com>
215
cbe34bb5
JJ
216 Update copyright years.
217
c1a9c369
JJ
218 * libitm.texi: Bump @copying's copyright year.
219
66dbcf2d
RO
2202016-12-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
221
222 * acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Remove.
223 * aclocal.m4: Regenerate.
224 * configure.ac: Call GCC_CHECK_LINKER_HWCAP instead of
225 LIBITM_CHECK_LINKER_HWCAP.
226
84c1b9d3
MK
2272016-11-15 Matthias Klose <doko@ubuntu.com>
228
229 * configure: Regenerate.
230
831698b8
L
2312016-04-19 H.J. Lu <hongjiu.lu@intel.com>
232
233 PR libitm/70456
234 * util.cc (xmalloc): Use posix_memalign to allocate memory on
235 on cache line if requested.
236
edcbda7e
DV
2372016-03-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
238
239 * config/s390/target.h (TARGET_BEGIN_TRANSACTION_ATTRIBUTE): Define
240 function attribute to disable floating point in begin_transaction() on
241 S/390.
242 * beginend.cc (begin_transaction): Use
243 TARGET_BEGIN_TRANSACTION_ATTRIBUTE.
244
6041f70a
TR
2452016-01-22 Torvald Riegel <triegel@redhat.com>
246
247 * beginend.cc (GTM::gtm_thread::serial_lock): Put on cacheline
248 boundary.
249 (htm_fastpath): Remove.
250 (gtm_thread::begin_transaction): Fix HTM fastpath.
251 (_ITM_commitTransaction): Adapt.
252 (_ITM_commitTransactionEH): Adapt.
253 * libitm/config/linux/rwlock.h (gtm_rwlock): Add htm_fastpath member
254 and accessors.
255 * libitm/config/posix/rwlock.h (gtm_rwlock): Likewise.
256 * libitm/config/posix/rwlock.cc (gtm_rwlock::gtm_rwlock): Adapt.
257 * libitm/config/x86/sjlj.S (_ITM_beginTransaction): Fix HTM fastpath.
258 * libitm/libitm_i.h (htm_fastpath): Remove declaration.
259 * libitm/method-serial.cc (htm_mg): Adapt.
260 (gtm_thread::serialirr_mode): Adapt.
261 * libitm/query.cc (_ITM_inTransaction, _ITM_getTransactionId): Adapt.
262
0b96ffdb
TR
2632016-01-21 Torvald Riegel <triegel@redhat.com>
264
265 * testsuite/libitm.c++/libstdc++-safeexc.C: Not supported on darwin
266 or AIX.
267
b1de98e3
RH
2682016-01-19 Richard Henderson <rth@redhat.com>
269
270 PR bootstrap/69343
271 PR bootstrap/69339
272 Revert:
273 2016-01-13 Richard Henderson <rth@redhat.com>
274
275 * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
276 (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
277 (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
278 (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
279 * configure.ac (ARCH_AARCH64): New conditional.
280 (ARCH_PPC, ARCH_S390): Likewise.
281 * Makefile.in, configure: Rebuild.
282
283 * libitm.h (_ITM_TYPE_M128): Always define.
284 * vect64.cc: Split ...
285 * vect128.cc: ... out of...
286 * config/x86/x86_sse.cc: ... here.
287 * config/arm/neon.cc: New file.
288
f57fc960
TR
2892016-01-19 Torvald Riegel <triegel@redhat.com>
290
291 * local_type_traits: Remove file.
292 * libitm_i.h: Don't include it anymore.
293 (sized_integral): Remove.
294
d2653984
TR
2952016-01-16 Torvald Riegel <triegel@redhat.com>
296
297 * method-gl.cc (gl_wt_dispatch::trycommit): Ensure proxy privatization
298 safety.
299 * method-ml.cc (ml_wt_dispatch::trycommit): Likewise.
300 * libitm/testsuite/libitm.c/priv-1.c: New.
301
a04d5fc9
TR
3022015-01-15 Torvald Riegel <triegel@redhat.com>
303
304 testsuite/libitm.c++/libstdc++-safeexc.C: New.
305
e89137ce
TR
3062016-01-13 Torvald Riegel <triegel@redhat.com>
307
308 * beginend.cc (gtm_thread::trycommit): Fix seq_cst fences.
309 * config/linux/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
310 (gtm_rwlock::write_unlock): Likewise.
311
4c868789
RH
3122016-01-13 Richard Henderson <rth@redhat.com>
313
314 * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
315 (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
316 (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
317 (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
318 * configure.ac (ARCH_AARCH64): New conditional.
319 (ARCH_PPC, ARCH_S390): Likewise.
320 * Makefile.in, configure: Rebuild.
321
322 * libitm.h (_ITM_TYPE_M128): Always define.
323 * vect64.cc: Split ...
324 * vect128.cc: ... out of...
325 * config/x86/x86_sse.cc: ... here.
326 * config/arm/neon.cc: New file.
327
629e4729
TR
3282016-01-13 Torvald Riegel <triegel@redhat.com>
329
330 * beginend.cc (gtm_thread::trycommit): Fix privatization safety.
331 * config/linux/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
332 * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Likewise.
333 * dispatch.h (abi_dispatch::snapshot_most_recent): New.
334 * method-gl.cc (gl_wt_dispatch::snapshot_most_recent): New.
335 * method-ml.cc (ml_wt_dispatch::snapshot_most_recent): New.
336 * method-serial.cc (serial_dispatch::snapshot_most_recent): New.
337 (serialirr_dispatch::snapshot_most_recent): New.
338 (serialirr_onwrite_dispatch::snapshot_most_recent): New.
339
0d1ed412
TR
3402016-01-12 Torvald Riegel <triegel@redhat.com>
341
342 * libitm_i.h (gtm_mask_stack): Remove.
343 * beginend.cc (gtm_stmlock_array, gtm_clock): Likewise.
344 * stmlock.h: Remove file.
345 * config/alpha/cacheline.h: Likewise.
346 * config/generic/cacheline.h: Likewise.
347 * config/powerpc/cacheline.h: Likewise.
348 * config/sparc/cacheline.h: Likewise.
349 * config/x86/cacheline.h: Likewise.
350
21fa2a29
JJ
3512016-01-04 Jakub Jelinek <jakub@redhat.com>
352
818ab71a
JJ
353 Update copyright years.
354
21fa2a29
JJ
355 * libitm.texi: Bump @copying's copyright year.
356
e7f7330f
TR
3572015-11-26 Torvald Riegel <triegel@redhat.com>
358
359 * method-ml.cc (ml_mg): Use multiplicative instead of simple hashing.
360 (ml_wt_dispatch::pre_write): Adapt.
361 (ml_wt_dispatch::pre_load): Likewise.
362
4f8a3b87
TR
3632015-11-22 Torvald Riegel <triegel@redhat.com>
364
365 * libitm_i.h (gtm_alloc_action): Remove union.
366 * testsuite/libitm.c/alloc-1.c: New.
367
258c1d07
TR
3682015-11-19 Torvald Riegel <triegel@redhat.com>
369
370 * testsuite/libitm.c++/eh-5.C: New.
371 * libitm.h (_ITM_cxa_free_exception): New.
372 * libitm.map (_ITM_cxa_free_exception): Add it.
373 * libitm.texi: Update ABI docs.
374 * libitm_i.h (gtm_transaction_cp::cxa_unthrown): Remove.
375 (gtm_transaction_cp::cxa_uncaught_count): Add.
376 (gtm_thread::cxa_unthrown): Remove.
377 (gtm_thread::cxa_uncaught_count_ptr): Add.
378 (gtm_thread::cxa_uncaught_count): Add.
379 (gtm_thread::drop_references_allocations): Rename to...
380 (gtm_thread::discard_allocation): ... this and adapt.
381 (gtm_thread::init_cpp_exceptions): New.
382 * beginend.cc (gtm_thread::gtm_thread): Adapt EH handling.
383 (gtm_thread::begin_transaction): Likewise.
384 (gtm_transaction_cp::save): Likewise.
385 (gtm_thread::trycommit): Likewise.
386 * eh_cpp.cc: Add overview comments.
387 (__cxa_eh_globals, __cxa_get_globals, __cxa_free_exception): Declare.
388 (free_any_exception, _ITM_cxa_free_exception): New.
389 (gtm_thread::init_cpp_exceptions): Define.
390 (_ITM_cxa_allocate_exception, _ITM_cxa_throw): Adapt.
391 (_ITM_cxa_begin_catch, _ITM_cxa_end_catch): Likewise.
392 (gtm_thread::revert_cpp_exceptions): Likewise.
393
c518678b
TR
3942015-11-09 Torvald Riegel <triegel@redhat.com>
395
396 * alloc_cpp.cc (_ZdlPvX, _ZdlPvXRKSt9nothrow_t, _ZGTtdlPvX,
397 _ZGTtdlPvXRKSt9nothrow_t, delsz_opnt): New.
398 * libitm.map: Add _ZGTtdlPvX and _ZGTtdlPvXRKSt9nothrow_t.
399 * libitm_i.h (gtm_alloc_action): Add free_fn_sz and sz. Add comments.
400 (gtm_thread::forget_allocations): New overload with size_t argument.
401 * alloc.c (gtm_thread::forget_allocation): Define new overload and
402 adapt existing one.
403 (gtm_thread::record_allocation): Adapt.
404 (gtm_thread::commit_allocations_1): Adapt.
405 (gtm_thread::commit_allocations_2): Adapt.
406 * testsuite/libitm.c++/newdelete.C: New.
407
1e44e857
DJ
4082015-10-27 Daniel Jacobowitz <dan@codesourcery.com>
409 Joseph Myers <joseph@codesourcery.com>
410 Mark Shinwell <shinwell@codesourcery.com>
411 Andrew Stubbs <ams@codesourcery.com>
412 Rich Felker <dalias@libc.org>
413
414 * config/sh/sjlj.S (_ITM_beginTransaction): Bypass PLT calling
415 GTM_begin_transaction for compatibility with FDPIC.
416
9e531d37
DM
4172015-10-09 David Malcolm <dmalcolm@redhat.com>
418
419 * testsuite/lib/libitm.exp: Load multiline.exp before prune.exp,
420 using load_gcc_lib.
421
c629c246
GFM
4222015-08-20 Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org> (tiny change)
423
424 PR libitm/61164
425 * local_atomic (__always_inline): Rename to...
426 (__libitm_always_inline): ... this.
427
cd5a9a74
CSLL
4282015-07-03 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
429
430 PR target/52482
431 * config/powerpc/sjlj.S: Port to Xcode 2.5.
432
ea023bcf
UB
4332015-05-27 Uros Bizjak <ubizjak@gmail.com>
434
d778b5a0
UB
435 * config/linux/x86/futex_bits.h (sys_futex0) [__x86_64__]: Change
436 operands "op" and "val" to int.
437
4382015-05-27 Uros Bizjak <ubizjak@gmail.com>
439
440 * config/linux/sh/futex_bits.h (sys_futex0) Change operands
441 "op" and "val" to int.
442
4432015-05-27 Uros Bizjak <ubizjak@gmail.com>
444
445 * config/linux/alpha/futex_bits.h (sys_futex0) Change operands
446 "op" and "val" to int.
447
4482015-05-27 Uros Bizjak <ubizjak@gmail.com>
449
450 * config/linux/futex.cc (gtm_futex_wait, gtm_futex_wake):
451 Declare as static int.
452 (FUTEX_PRIVATE_FLAG): Remove L suffix.
453 * config/linux/futex_bits.h (sys_futex0) Change operand "op" to int.
454
4552015-05-27 Uros Bizjak <ubizjak@gmail.com>
456
457 * config/linux/x86/futex_bits.h (sys_futex0) [__PIC__]: Remove
458 sys_futex0 function.
ea023bcf 459
503902f9
MH
4602015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
461
462 * Makefile.in: Regenerated with automake-1.11.6.
463 * aclocal.m4: Likewise.
464 * configure: Likewise.
465 * testsuite/Makefile.in: Likewise.
466
96ce40cb
GR
4672015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
468
469 * config/arm/hwcap.cc: Use fcntl.h instead of sys/fcntl.h.
470 * config/linux/x86/tls.h: Only use __GLIBC_PREREQ if defined.
471
3a07b160
L
4722015-01-15 H.J. Lu <hongjiu.lu@intel.com>
473
474 PR libitm/64360
475 * libitm.c/stackundo.c (test2): Make it static.
476 (test1): Likewise.
477
5624e564
JJ
4782015-01-05 Jakub Jelinek <jakub@redhat.com>
479
480 Update copyright years.
481
b67cd4e3
JJ
4822015-01-05 Jakub Jelinek <jakub@redhat.com>
483
484 * libitm.texi: Bump @copying's copyright year.
485
69aef6dc
KT
4862014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
487
488 * testsuite/lib/libitm.exp: Load target-utils.exp.
489 Move load of target-supports.exp earlier.
490
68bc9270
UB
4912014-12-03 Uros Bizjak <ubizjak@gmail.com>
492
493 * configure.tgt (x86_64): Tune -m32 multilib to generic.
494
a699d672
L
4952014-11-21 H.J. Lu <hongjiu.lu@intel.com>
496
497 PR bootstrap/63784
498 * configure: Regenerated.
499
ebf6d33b
FXC
5002014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
501
502 PR target/63610
503 * configure: Regenerate.
504
99183741
MP
5052014-10-06 Marek Polacek <polacek@redhat.com>
506
507 * testsuite/libitm.c/memcpy-1.c: Declare getpagesize.
508 * testsuite/libitm.c/memset-1.c: Likewise.
509
b6334cf4
RH
5102014-07-24 Richard Henderson <rth@redhat.com>
511
512 * config/aarch64/sjlj.S (_ITM_beginTransaction): Use post-inc
513 addressing mode in epilogue.
514
3c698bf0
RO
5152014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
516
517 * acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): Check for
518 -mclear-hwcap instead.
519 * configure: Regenerate.
520 * clearcap.map: Remove.
521
dbed5a9b
JM
5222014-05-21 John Marino <gnugcc@marino.st>
523
524 * configure.tgt (*-*-dragonfly*): New target.
525
b17f08dd
RH
5262014-05-19 Richard Henderson <rth@redhat.com>
527
528 * config/aarch64/sjlj.S: New file.
529 * config/aarch64/target.h: New file.
530 * configure.tgt: Enable aarch64.
531
5e1f630a
RO
5322014-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
533
534 * config/generic/asmcfi.h: Also check for
535 __GCC_HAVE_DWARF2_CFI_ASM.
536
84c2f4b0
RH
5372013-04-02 Richard Henderson <rth@redhat.com>
538
539 * config/alpha/target.h (PAGE_SIZE, FIXED_PAGE_SIZE): Remove.
540 * config/arm/target.h, config/sh/target.h: Likewise.
541 * config/sparc/target.h, config/x86/target.h: Likewise.
542
7cc51d64
JJ
5432014-03-26 Jakub Jelinek <jakub@redhat.com>
544
545 * config/linux/futex_bits.h: Include errno.h.
546 (sys_futex0): If syscall returns -1, return -errno rather than
547 -1.
548
c288ec8f
JM
5492014-03-26 Joseph Myers <joseph@codesourcery.com>
550
551 * libitm.texi (Index): Rename to Library Index.
552
ed100f5d
L
5532014-01-13 H.J. Lu <hongjiu.lu@intel.com>
554
555 PR libitm/53113
556 * Makefile.am (x86_sse.lo): Append -msse to CXXFLAGS.
557 (x86_avx.lo): Append -mavx to CXXFLAGS.
558 * Makefile.in: Regenerate.
559
f93608e6
RS
5602014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
561
562 Update copyright years
563
98db73df
TB
5642014-01-02 Tobias Burnus <burnus@net-b.de>
565
566 * libitm.texi: Bump @copying's copyright year.
567
b54214fe
UW
5682013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
569
570 * config/powerpc/sjlj.S [__powerpc64__ && _CALL_ELF == 2]:
571 (FUNC): Define ELFv2 variant.
572 (END): Likewise.
573 (HIDDEN): Likewise.
574 (CALL): Likewise.
575 (BASE): Likewise.
576 (LR_SAVE): Likewise.
577
3cbe17f7
AM
5782013-09-20 Alan Modra <amodra@gmail.com>
579
580 * configure: Regenerate.
581
6fb471d8
TR
5822013-08-30 Torvald Riegel <triegel@redhat.com>
583
584 * config/posix/rwlock.cc: Fix initialization order.
585
bec9ec3f
TR
5862013-08-30 Torvald Riegel <triegel@redhat.com>
587
588 * libitm_i.h (gtm_thread): Assign an asm name to serial_lock.
589 (htm_fastpath): Assign an asm name.
590 * libitm.h (_ITM_codeProperties): Add non-ABI flags used by custom
591 HTM fast paths.
592 (_ITM_actions): Likewise.
593 * config/x86/target.h (HTM_CUSTOM_FASTPATH): Enable custom fastpath on
594 x86_64.
595 * config/x86/sjlj.S (_ITM_beginTransaction): Add custom HTM fast path.
596 * config/posix/rwlock.h (gtm_rwlock): Update comments. Move summary
597 field to the start of the structure.
598 * config/linux/rwlock.h (gtm_rwlock): Update comments.
599 * beginend.cc (gtm_thread::begin_transaction): Add retry policy
600 handling for custom HTM fast paths.
601
1869217f
AK
6022013-08-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
603 Revert:
604 2013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
605
606 * configure.tgt: Add -msoft-float to XCFLAGS.
607
d62d5152
AK
6082013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
609
610 * configure.tgt: Add -msoft-float to XCFLAGS.
611
aaaffb2a
AK
6122013-07-29 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
613
614 * config/s390/target.h (htm_begin, htm_commit, htm_abort)
615 (htm_transaction_active): Enable zEC12 instructions in the
616 assembler.
617 * configure.tgt: Remove -Wa,-march=zEC12 from XCFLAGS.
618
167f68ed
AK
6192013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
620
621 * acinclude.m4: Add htm asm check for s390.
622 * configure.tgt: Add -mhtm and -Wa,-march=zEC12 to the options.
623 * configure: Regenerate.
624 * config/s390/target.h: Remove __HTM__ check.
625 (htm_available): Call getauxval to get hwcaps and check whether
626 HTM is available or not.
627
0258b6e4
PB
6282013-07-15 Peter Bergner <bergner@vnet.ibm.com>
629
630 * acinclude.m4 (LIBITM_CHECK_AS_HTM): New.
631 * configure.ac: Use it.
632 (AC_CHECK_HEADERS): Check for sys/auxv.h.
633 (AC_CHECK_FUNCS): Check for getauxval.
634 * config.h.in, configure: Rebuild.
635 * configure.tgt (target_cpu): Add -mhtm to XCFLAGS.
636 * config/powerpc/target.h: Include sys/auxv.h and htmintrin.h.
637 (USE_HTM_FASTPATH): Define.
638 (_TBEGIN_STARTED, _TBEGIN_INDETERMINATE, _TBEGIN_PERSISTENT,
639 _HTM_RETRIES) New macros.
640 (htm_abort, htm_abort_should_retry, htm_available, htm_begin, htm_init,
641 htm_begin_success, htm_commit, htm_transaction_active): New functions.
642
5a3fe9b6
AK
6432013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
644
645 * config/s390/target.h: Include htmintrin.h.
646 (_HTM_ITM_RETRIES): New macro definition.
647 (htm_available, htm_init, htm_begin, htm_begin_success)
648 (htm_commit, htm_abort, htm_abort_should_retry): New functions.
649
6c84d576
IS
6502013-06-20 Iain Sandoe <iain@codesourcery.com>
651 Cesar Philippidis <cesar@codesourcery.com>
652
653 * testsuite/lib/libitm.exp: Reorder lib loads into dependency order.
654 Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
655 * testsuite/libitm.c/c.exp: load_gcc_lib gcc-dg.exp.
656 * testsuite/libitm.c++/c++.exp: load_gcc_lib gcc-dg.exp.
657
480c696b
TR
6582013-06-20 Torvald Riegel <triegel@redhat.com>
659
660 * query.cc (_ITM_inTransaction): Abort when using the HTM fastpath.
661 (_ITM_getTransactionId): Same.
662 * config/x86/target.h (htm_transaction_active): New.
663
b1db457b
TR
6642013-06-20 Torvald Riegel <triegel@redhat.com>
665
666 PR libitm/57643
667 * beginend.cc (gtm_thread::begin_transaction): Handle reentrancy in
668 the HTM fastpath.
669
51249377
GP
6702013-03-31 Gerald Pfeifer <gerald@pfeifer.com>
671
672 PR bootstrap/56714
673 * local_atomic (__always_inline): Always define our version.
674 (__calculate_memory_order): Mark inline.
675 (atomic_thread_fence): Ditto.
676 (atomic_signal_fence): Ditto.
677 (atomic_bool::atomic_flag_test_and_set_explicit): Ditto.
678 (atomic_bool::atomic_flag_clear_explicit): Ditto.
679 (atomic_bool::atomic_flag_test_and_set): Ditto.
680 (atomic_bool::atomic_flag_clear): Ditto.
681
f818478b
JJ
6822013-04-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
683
684 * config/s390/sjlj.S: New file.
685 * config/s390/target.h: New file.
686 * configure.tgt: Set options for S/390.
687
ab4425be
AK
6882013-03-23 Andi Kleen <ak@linux.intel.com>
689
690 * local_atomic (__always_inline): Add.
691 (__calculate_memory_order, atomic_thread_fence,
692 atomic_signal_fence, test_and_set, clear, store, load,
693 exchange, compare_exchange_weak, compare_exchange_strong,
694 fetch_add, fetch_sub, fetch_and, fetch_or, fetch_xor):
695 Add __always_inline to force inlining.
696
6c59ffd1
IS
6972013-02-11 Iain Sandoe <iain@codesourcery.com>
698 Jack Howarth <howarth@bromo.med.uc.edu>
699 Patrick Marlier <patrick.marlier@gmail.com>
700
701 PR libitm/55693
702 * alloc_cpp.cc: Enable function declarations on darwin.
703 * eh_cpp.cc: Likewise.
704
75f9527c
RS
7052013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
706
707 Update copyright years.
708
64fbcc74
TR
7092012-11-09 Torvald Riegel <triegel@redhat.com>
710
711 * beginend.cc (htm_fastpath): New.
712 (gtm_thread::begin_transaction, _ITM_commitTransaction,
713 _ITM_commitTransactionEH): Add HTM fastpath handling.
714 * config/linux/rwlock.h (gtm_rwlock.is_write_locked): New.
715 * config/posix/rwlock.h (gtm_rwlock.is_write_locked): New.
716 * config/x86/target.h (htm_available, htm_init, htm_begin_success,
717 htm_begin, htm_commit, htm_abort, htm_abort_should_retry): New.
718 * configure.tgt: Add -mrtm to XCFLAGS.
719 * method-serial.cc (htm_mg, o_htm_mg, htm_dispatch, dispatch_htm): New.
720 (gtm_thread::serialirr_mode): Add HTM fastpath handling.
721 * libitm_i.h (htm_fastpath, dispatch_htm): Declare.
722 * retry.cc (parse_default_method): Add HTM method parsing.
723 (gtm_thread::number_of_threads_changed): Use HTM by default if
724 available.
725
b9efc877
TS
7262012-11-04 Thomas Schwinge <thomas@codesourcery.com>
727
728 * configure: Regenerate.
729
07d3b5c8
RH
7302012-10-31 Richard Henderson <rth@redhat.com>
731
732 * acinclude.m4 (LIBITM_CHECK_AS_RTM): New.
733 * configure.ac: Use it.
734 * config.h.in, configure: Rebuild.
735 * testsuite/Makefile.in: Rebuild.
736
eb00e959
TR
7372012-10-24 Torvald Riegel <triegel@redhat.com>
738
739 * libitm.texi: Clarify ABI requirements for data-logging functions.
740
b679c813
TR
7412012-10-24 Torvald Riegel <triegel@redhat.com>
742
743 * retry.cc (gtm_thread::decide_begin_dispatch): Ask dispatch whether
744 it requires serial mode instead of assuming that for certain
745 dispatchs.
746 * dispatch.h (abi_dispatch::requires_serial): New.
747 (abi_dispatch::abi_dispatch): Adapt.
748 * method-gl.cc (gl_wt_dispatch::gl_wt_dispatch): Adapt.
749 * method-ml.cc (ml_wt_dispatch::ml_wt_dispatch): Same.
750 * method-serial.cc (serialirr_dispatch::serialirr_dispatch,
751 serial_dispatch::serial_dispatch,
752 serialirr_onwrite_dispatch::serialirr_onwrite_dispatch): Same.
753
0c609a21
UB
7542012-10-02 Uros Bizjak <ubizjak@gmail.com>
755
756 * config/x86/target.h (struct gtm_jmpbuf): Merge x86_64
757 and ia32 declarations some more.
758 * config/x86/sjlj.S (_ITM_beginTransaction): Move ret to common code.
759
c0758df9
JJ
7602012-09-20 Jakub Jelinek <jakub@redhat.com>
761
762 PR other/43620
763 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
764 * configure: Regenerate.
765 * Makefile.in: Regenerate.
766
690c45b8
DE
7672012-09-14 David Edelsohn <dje.gcc@gmail.com>
768
769 * configure: Regenerated.
770
68a12ef3
UB
7712012-07-31 Uros Bizjak <ubizjak@gmail.com>
772
773 * config/x86/target.h (cpu_relax): Use __builtin_ia32_pause.
774
f2f9a097
PM
7752012-05-21 Patrick Marlier <patrick.marlier@gmail.com>
776
777 * eh_cpp.cc: Fix __cxa_end_catch declaration.
778
e6d5f8c9
L
7792012-05-16 H.J. Lu <hongjiu.lu@intel.com>
780
781 * configure: Regenerated.
782
0100e3b3
L
7832012-04-04 H.J. Lu <hongjiu.lu@intel.com>
784
785 PR libitm/52854
786 * config/x86/target.h (gtm_jmpbuf): Replace long with long long
787 for x86-64.
788
2f6935f4
TG
7892012-04-03 Tristan Gingold <gingold@adacore.com>
790
791 * configure: Regenerate.
792
b9c23a61
L
7932012-03-31 H.J. Lu <hongjiu.lu@intel.com>
794
795 PR bootstrap/52812
796 * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
797
6a26a74d
BRF
7982012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
799
800 * testsuite/lib/libitm.exp: load fortran-modules.exp
801
b24513a1
RO
8022012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
803
804 * configure.tgt (*-*-irix6*): Remove.
805
0d23faac
TR
8062012-03-13 Torvald Riegel <triegel@redhat.com>
807
808 PR libitm/52526
809 * config/linux/rwlock.cc (GTM::gtm_rwlock::read_lock): Fix lost
810 wake-up.
811
5c30094f
RO
8122012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
813
814 * configure.tgt (*-*-osf*): Remove.
815 * configure: Regenerate.
816
d28b0b08
TR
8172012-03-05 Torvald Riegel <triegel@redhat.com>
818
819 * dispatch.h (CREATE_DISPATCH_METHODS_MEM): Don't execute
820 memtransfer/memset if size isn't larger than zero.
821
034209bc
TR
8222012-03-02 Torvald Riegel <triegel@redhat.com>
823
824 * libitm.texi: Link to specification and add a usage example.
825
bc8da6ba
TR
8262012-02-24 Torvald Riegel <triegel@redhat.com>
827
828 * retry.cc (GTM::gtm_thread::number_of_threads_changed): Change
829 default dispatch for more than 1 thread to ml_wt.
830
63b08143
TR
8312012-02-20 Torvald Riegel <triegel@redhat.com>
832
833 * method-gl.cc (gl_wt_dispatch::orec): Put on separate cacheline.
834
4c9bd6ac
TR
8352012-02-20 Torvald Riegel <triegel@redhat.com>
836
837 * method-gl.cc (gl_wt_dispatch::rollback): Optimize memory orders.
838
651ff415
TR
8392012-02-20 Torvald Riegel <triegel@redhat.com>
840
841 * method-gl.cc (gl_wt_dispatch::trycommit): Remove handling of
842 serial mode corner cases made obsolete by prior gtm_rwlock changes.
843 (gl_wt_dispatch.rollback): Same.
844
efee0113
TR
8452012-02-20 Torvald Riegel <triegel@redhat.com>
846
847 * method-gl.cc (gl_wt_dispatch::pre_write): Optimize memory orders.
848
33a03827
TR
8492012-02-20 Torvald Riegel <triegel@redhat.com>
850
851 * method-gl.cc (gl_wt_dispatch::memtransfer_static): Add missing undo
852 for RfW src. Optimize number of calls to gtm_thr.
853
a19db3f2
TR
8542012-02-20 Torvald Riegel <triegel@redhat.com>
855
856 * beginend.cc (GTM::gtm_thread::begin_transaction): Move serial lock
857 acquisition to ...
858 * retry.cc (GTM::gtm_thread::decide_begin_dispatch): ... here.
859 (default_dispatch): Make atomic.
860 (GTM::gtm_thread::set_default_dispatch): Access atomically.
861 (GTM::gtm_thread::decide_retry_strategy): Access atomically and
862 use decide_begin_dispatch() if default_dispatch might have changed.
863 (GTM::gtm_thread::number_of_threads_changed): Initialize
864 default_dispatch here.
865
e948a1fb
IS
8662012-02-15 Iain Sandoe <iains@gcc.gnu.org>
867 Patrick Marlier <patrick.marlier@gmail.com>
868
869 PR libitm/52220
870 * alloc_cpp.cc: No dummy definitions for darwin.
871 * eh_cpp.cc: Likewise.
872
72824d5e
RH
8732012-02-14 Richard Henderson <rth@redhat.com>
874
875 * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
876
1f319dba
UB
8772012-02-14 Uros Bizjak <ubizjak@gmail.com>
878
879 * config/x86/target.h (GTM_longjmp): Correct .cfi directives.
880
31772c95
TR
8812012-02-14 Torvald Riegel <triegel@redhat.com>
882
883 * libitm_i.h (GTM::gtm_rwlog_entry): New.
884 (GTM::gtm_thread): Add read and write logs.
885 (GTM::dispatch_ml_wt): Declare.
886 * retry.cc (parse_default_method): Support ml_wt.
887 * method-ml.cc: New file.
888 * Makefile.am: Add method-ml.cc.
889 * Makefile.in: Regenerate.
890
5b9cf5d2
TR
8912012-02-14 Torvald Riegel <triegel@redhat.com>
892
893 * dispatch.h (GTM::abi_dispatch::supports): New.
894 (GTM::method_group::reinit): New.
895 * retry.cc (GTM::gtm_thread::decide_retry_strategy): Use reinit().
896 (GTM::gtm_thread::number_of_threads_changed): Check that the method
897 supports the current situation.
898
7d33bcb7
TR
8992012-02-14 Torvald Riegel <triegel@redhat.com>
900
901 * util.cc (GTM::xcalloc): New.
902 * common.h (GTM::xcalloc): Declare.
903
62513f7b
EB
9042012-02-14 Eric Botcazou <ebotcazou@adacore.com>
905
906 * config/sparc/target.h (cpu_relax): Read from CC register.
907 * config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically.
908
9092012-02-14 Uros Bizjak <ubizjak@gmail.com>
d4a698d4
UB
910
911 * config/x86/target.h (GTM_longjmp): Jump indirect from memory address.
912
f3f5e3c3
EB
9132012-02-13 Eric Botcazou <ebotcazou@adacore.com>
914
62513f7b 915 * configure.tgt (target_cpu): Handle sparc and sparc64/sparcv9.
f3f5e3c3
EB
916 * config/sparc/cacheline.h: New file.
917 * config/sparc/target.h: Likewise.
918 * config/sparc/sjlj.S: Likewise.
919 * config/linux/sparc/futex_bits.h: Likewise.
920
9212012-02-13 Eric Botcazou <ebotcazou@adacore.com>
255a9a1b
EB
922
923 * configure.ac (link_itm): Fix comment.
924 * configure: Regenerate.
925 * testsuite/lib/libitm.exp: Do not pass -litm for the link.
926
681355e3
RO
9272012-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
928
fc985d2f 929 PR libitm/51822
62513f7b 930 * testsuite/libitm.c++/c++.exp (lang_link_flags): Add -shared-libgcc.
681355e3
RO
931 Correct libgomp references.
932
999bcff5
TR
9332012-01-24 Torvald Riegel <triegel@redhat.com>
934
935 * config/linux/rwlock.cc (GTM::gtm_rwlock::write_unlock): Fix reader
936 wake-up.
937
9848887a
UB
9382012-01-24 Uros Bizjak <ubizjak@gmail.com>
939
940 * config/x86/target.h (gtm_jmpbuf) [__x86_64__]: Move rip to the
941 end of structure.
942 * config/x86/sjlj.S (_ITM_beginTransaction) [__x86_64__]: Update
943 offset values. Do not copy return address. Decrement stack
944 by 56 bytes only.
945 (GTM_longjump) [__x86_64__]: Update offset values.
946
5752c591
UB
9472012-01-23 Uros Bizjak <ubizjak@gmail.com>
948
949 PR libitm/51830
950 * config/x86/sjlj.S (_ITM_beginTransaction) [!__x86_64__]: Load
951 the first function argument to %eax.
952
61e72ca4
RO
9532012-01-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
954
955 * libitm.h (_ITM_getThreadnum): Remove.
956 * libitm.map (_ITM_getThreadnum): Remove from LIBITM_1.0.
957
9ce91011
RO
9582012-01-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
959
960 * clearcap.map: New file.
961 * acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): New test.
962 * configure.ac: Call it.
963 Clear HWCAP_LDFLAGS if defaulting to -mavx.
964 * Makefile.am (AM_LDFLAGS): Add $(HWCAP_LDFLAGS)
965 * configure: Regenerate.
966 * Makefile.in: Regenerate.
967 * testsuite/Makefile.in: Regenerate.
968
3b4f05ec
RO
9692012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
970
971 PR libitm/51173
972 * testsuite/libitm.c++/static_ctor.C: Skip test, note PR, remove
973 include, exclude options.
974
aab74ee9
TR
9752012-01-14 Torvald Riegel <triegel@redhat.com>
976
977 * local.cc (GTM::gtm_undolog::rollback): Truncate undo log after
978 rolling back.
979 * containers.h (GTM::vector::set_size): New.
980
07b6642b
TR
9812012-01-14 Torvald Riegel <triegel@redhat.com>
982
983 PR libitm/51855
984 * config/generic/tls.h (GTM::mask_stack_top): New.
985 (GTM::mask_stack_bottom): Declare.
986 * config/generic/tls.c (GTM::mask_stack_bottom): New.
987 * local.cc (gtm_undolog::rollback): Filter out any updates that
988 overlap the libitm stack. Add current transaction as parameter.
989 * libitm_i.h (GTM::gtm_undolog::rollback): Adapt.
990 * beginend.cc (GTM::gtm_thread::rollback): Adapt.
991 * testsuite/libitm.c/stackundo.c: New test.
992
8377e5e5
RH
9932012-01-10 Richard Henderson <rth@redhat.com>
994
995 * libitm_i.h (_Unwind_DeleteException): Declare weak.
996 * eh_cpp.cc (_Unwind_DeleteException): Define for
997 !HAVE_ELF_STYLE_WEAKREF.
998
11f30bb0
TR
9992012-01-08 Torvald Riegel <triegel@redhat.com>
1000
1001 * local.cc (GTM_LB): Use GTM::gtm_undolog.
1002 (GTM::gtm_thread::drop_references_undolog): Remove.
1003 (GTM::gtm_thread::commit_undolog,
1004 GTM::gtm_thread::rollback_undolog): Move to ...
1005 * libitm_i.h (GTM::gtm_undolog): ...here. New.
1006 (GTM::gtm_undolog_entry): Remove.
1007 (GTM::gtm_thread): Adapt.
1008 * beginend.cc (GTM::gtm_thread::rollback): Adapt.
1009 (GTM::gtm_thread::trycommit): Adapt.
1010 * method-serial.cc (serial_dispatch::log): Adapt.
1011 * method-gl.cc (gl_wt_dispatch::pre_write): Adapt.
1012 (gl_wt_dispatch::store): Fix likely/unlikely.
1013 * containers.h (GTM::vector::resize): Add additional_capacity
1014 parameter and handle it.
1015 (GTM::vector::resize_noinline): New/adapt.
1016 (GTM::vector::push): New.
1017
a32e5e93
RH
10182012-01-06 Richard Henderson <rth@redhat.com>
1019
1020 * configure.tgt: Support powerpc-linux and powerpc-darwin.
1021 * config/linux/powerpc/futex_bits.h: New file.
1022 * config/powerpc/cacheline.h: New file.
1023 * config/powerpc/sjlj.S: New file.
1024 * config/powerpc/target.h: New file.
1025 * config/generic/asmcfi.h (cfi_offset): New.
1026 (cfi_restore, cfi_undefined): New.
1027
1f53a8e6
AH
10282012-01-05 Aldy Hernandez <aldyh@redhat.com>
1029
1030 PR other/51171
1031 * testsuite/libitm.c/reentrant.c: Remove xfail.
1032 (thread): Pass x to pure().
be223aaf 1033 From Patrik Marlier <patrick.marlier@gmail.com>.
1f53a8e6 1034
c898f7b8
TR
10352011-12-24 Torvald Riegel <triegel@redhat.com>
1036
1037 * beginend.cc (GTM::gtm_thread::trycommit): Don't enforce
1038 privatization safety if already in serial mode.
1039
610e3901
TR
10402011-12-24 Torvald Riegel <triegel@redhat.com>
1041
1042 * beginend.cc (GTM::gtm_thread::restart): Add and handle
1043 finish_serial_upgrade parameter.
1044 * libitm.h (GTM::gtm_thread::restart): Adapt declaration.
1045 * config/linux/rwlock.cc (GTM::gtm_rwlock::write_lock_generic):
1046 Don't unset reader flag.
1047 (GTM::gtm_rwlock::write_upgrade_finish): New.
1048 * config/posix/rwlock.cc: Same.
1049 * config/linux/rwlock.h (GTM::gtm_rwlock::write_upgrade_finish):
1050 Declare.
1051 * config/posix/rwlock.h: Same.
1052 * method-serial.cc (GTM::gtm_thread::serialirr_mode): Unset reader
1053 flag after commit or after rollback when restarting.
1054
799142bf
TR
10552011-12-24 Torvald Riegel <triegel@redhat.com>
1056
1057 * beginend.cc (GTM::gtm_thread::begin_transaction): Add comment.
1058 (GTM::gtm_thread::try_commit): Changed memory order.
1059 * config/linux/alpha/futex_bits.h (sys_futex0): Take atomic int
1060 as parameter.
1061 * config/linux/x86/futex_bits.h (sys_futex0): Same.
1062 * config/linux/sh/futex_bits.h (sys_futex0): Same.
1063 * config/linux/futex_bits.h (sys_futex0): Same.
1064 * config/linux/futex.cc (futex_wait, futex_wake): Same.
1065 * config/linux/futex.h (futex_wait, futex_wake): Same.
1066 * config/linux/rwlock.h (gtm_rwlock::writers,
1067 gtm_rwlock::writer_readers, gtm_rwlock::readers): Change to atomic
1068 ints.
1069 * config/linux/rwlock.cc (gtm_rwlock::read_lock,
1070 gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
1071 gtm_rwlock::write_unlock): Fix memory orders and fences.
1072 * config/posix/rwlock.cc (gtm_rwlock::read_lock,
1073 gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
1074 gtm_rwlock::write_unlock): Same.
1075 * config/linux/rwlock.h (gtm_rwlock::summary): Change to atomic int.
1076 * method-gl.cc (gl_mg::init, gl_wt_dispatch::memtransfer_static,
1077 gl_wt_dispatch::memset_static, gl_wt_dispatch::begin_or_restart):
1078 Add comments.
1079 (gl_wt_dispatch::pre_write, gl_wt_dispatch::validate,
1080 gl_wt_dispatch::load, gl_wt_dispatch::store,
1081 gl_wt_dispatch::try_commit, gl_wt_dispatch::rollback): Fix memory
1082 orders and fences. Add comments.
1083
b0f96e35
JJ
10842011-12-21 Jakub Jelinek <jakub@redhat.com>
1085
1086 * Makefile.am (AM_CXXFLAGS): Put $(XCFLAGS) first.
1087 * Makefile.in: Regenerated.
1088
cc163247
KK
10892011-12-17 Kaz Kojima <kkojima@gcc.gnu.org>
1090
1091 * configure.tgt: Add sh* case.
1092 * config/sh/target.h: New file.
1093 * config/sh/sjlj.S: New file.
1094 * config/linux/sh/futex_bits.h: New file.
1095
aebac0ca
RH
10962011-12-14 Richard Henderson <rth@redhat.com>
1097
1098 * config/arm/hwcap.h, config/arm/hwcap.cc: New files.
1099 * config/arm/sjlj.S, config/arm/target.h: New files.
1100 * config/generic/asmcfi.h (cfi_adjust_cfa_offset): New.
1101 (cfi_rel_offset): New.
1102 * config/linux/futex_bits.h: New file.
1103 * config/linux/futex.cc: Include futex_bits.h here...
1104 * config/linux/futex.h: ... not here.
1105 * Makefile.am (libitm_la_SOURCES) <ARCH_ARM>: Add hwcap.cc.
1106 * configure.ac (ARCH_AM): New conditional.
1107 * Makefile.in, configure: Rebuild.
1108 * configure.tgt: Handle ARM.
1109
36cfbee1
RH
11102011-12-13 Richard Henderson <rth@redhat.com>
1111
5d9d05d3
RH
1112 * config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Fix
1113 signed/unsigned comparison werror.
1114
36cfbee1
RH
1115 * local_atomic: New file.
1116 * libitm_i.h: Include it.
1117 (gtm_thread::shared_state): Use atomic template.
1118 * beginend.cc (GTM::gtm_clock): Use atomic template.
1119 (global_tid): Use atomic template if 64-bit atomics available.
1120 (gtm_thread::gtm_thread): Update shared_state access.
1121 (gtm_thread::trycommit): Likewise.
1122 (choose_code_path): Update global_tid access.
1123 * method-gl.cc (gl_mg::orec): Use atomic template. Update all users.
1124 * stmlock.h (GTM::gtm_clock): Use atomic template.
1125 (gtm_get_clock, gtm_inc_clock): Update accesses.
1126 * config/linux/rwlock.cc (gtm_rwlock::read_lock): Remove
1127 redundant __sync_synchronize after atomic shared_state access.
1128 * config/posix/rwlock.cc (gtm_rwlock::read_lock): Likewise.
1129 (gtm_rwlock::write_lock_generic): Likewise.
1130 (gtm_rwlock::read_unlock): Likewise.
1131 * config/alpha/target.h (atomic_read_barrier): Remove.
1132 (atomic_write_barrier): Remove.
1133 * config/x86/target.h (atomic_read_barrier): Remove.
1134 (atomic_write_barrier): Remove.
1135
062f93f2
RH
11362011-11-30 Richard Henderson <rth@redhat.com>
1137
1138 * libitm_i.h (GTM_longjmp): Swap first and second arguments.
1139 * beginend.c (_ITM_abortTransaction): Update to match.
1140 (GTM::gtm_thread::restart): Likewise.
1141 * config/alpha/sjlj.S (GTM_longjmp): Likewise.
1142 * config/x86/sjlj.S (GTM_longjmp): Likewise.
1143
bd8aaa86
IS
11442011-11-23 Iain Sandoe <iains@gcc.gnu.org>
1145
1146 * Makefile.am (libitm_la_LDFLAGS): Remove "-no-undefined".
1147 * Makefile.in: Regenerate.
1148
8cf36bb3
IS
11492011-11-22 Iain Sandoe <iains@gcc.gnu.org>
1150
1151 * configure.ac: Use GCC_CHECK_ELF_STYLE_WEAKREF.
1152 * alloc_cpp.cc: Generate dummy functions if we don't
1153 HAVE_ELF_STYLE_WEAKREF.
1154 * eh_cpp.cc: Likewise.
1155 * configure: Regenerate.
1156 * aclocal.m4: Likewise.
1157 * config.h.in: Likewise.
1158 * Makefile.in: Likewise.
1159 * testsuite/Makefile.in: Likewise.
1160
0b41ebef
IS
11612011-11-22 Iain Sandoe <iains@gcc.gnu.org>
1162
1163 * config/x86/sjlj.S (CONCAT1, CONCAT2, SYM): Respond to
1164 __USER_LABEL_PREFIX__ for targets that use it.
8cf36bb3 1165 (TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets.
0b41ebef
IS
1166 (_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist
1167 in portability to non-elf targets.
8cf36bb3 1168 (GTM_longjmp): Likewise.
0b41ebef
IS
1169 * libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__
1170 where required.
1171
9c9d352a
IS
11722011-11-22 Iain Sandoe <iains@gcc.gnu.org>
1173
1174 * testsuite/libitm.c/memcpy-1.c: Allow for MAP_ANON spelling.
1175 * testsuite/libitm.c/memset-1.c: Likewise.
1176
c6084f68
AT
11772011-11-21 Andreas Tobler <andreast@fgznet.ch>
1178
1179 * configure: Regenerate.
1180
adcd36bc
RO
11812011-11-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1182
1183 * acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Handle gold.
1184 (LIBITM_ENABLE_SYMVERS): Handle sun style.
1185 * Makefile.am: Handle sun style versioning.
1186 (libitm_la_LINK): Add $(libitm_la_LDFLAGS).
1187 * configure: Regenerate.
1188 * Makefile.in: Regenerate.
1189
59659b59
RO
11902011-11-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1191
1192 * config/generic/asmcfi.h: Fix comment.
1193 * config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code
1194 sequence without .hidden support, error for non-ELF targets.
1195 (GTM_longjmp) [__ELF__]: Only use .hidden if
1196 HAVE_ATTRIBUTE_VISIBILITY.
1197
d846e425
RO
11982011-11-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1199
1200 * alloc_cpp.cc [__osf__] (_ZnwX, _ZdlPv, _ZnaX, _ZdaPv,
1201 _ZnwXRKSt9nothrow_t, _ZdlPvRKSt9nothrow_t, _ZdaPvRKSt9nothrow_t):
1202 Dummy functions.
1203 * eh_cpp.cc [__osf__] (__cxa_allocate_exception, __cxa_throw,
1204 __cxa_begin_catch, __cxa_end_catch, __cxa_tm_cleanup): Likewise.
1205
80713347
UB
12062011-11-16 Uros Bizjak <ubizjak@gmail.com>
1207
1208 PR bootstrap/51098
1209 * acinclude.m4 (LIBITM_CHECK_AS_AVX): Fix target selector.
1210 * configure: Regenerate.
1211
2841f85e
L
12122011-11-14 H.J. Lu <hongjiu.lu@intel.com>
1213
1214 * testsuite/lib/libitm.exp: Check ia32 instead of ilp32.
1215
8851b429
RO
12162011-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1217
1218 * config/alpha/sjlj.S (_ITM_beginTransaction) [!__ELF__]: Don't use
1219 .hidden.
1220 (.note.GNU-stack): Only use if __linux__.
1221 * alloc_cpp.cc [!__osf__] (_ZnaXRKSt9nothrow_t): Dummy function.
1222 * testsuite/libitm.c/notx.c: Use dg-options "-pthread".
1223 * testsuite/libitm.c/reentrant.c: Likewise.
1224 * testsuite/libitm.c/simple-2.c: Likewise.
1225 * testsuite/libitm.c/txrelease.c: Likewise.
1226 * testsuite/libitm.c++/static_ctor.C: Likewise.
1227
d4b17902
RH
12282011-11-10 Richard Henderson <rth@redhat.com>
1229
1230 * config/x86/x86_avx.cc: Remove #undef __AVX__ hack. Tidy comments.
1231 * Makefile.am (x86_avx.lo): Only add -mavx if ARCH_X86_AVX.
1232 * configure.ac (ARCH_X86_AVX): New conditional.
1233 * Makefile.in, configure: Rebuild.
1234
430616e7
RH
12352011-11-09 Richard Henderson <rth@redhat.com>
1236
1237 * acinclude.m4 (LIBITM_CHECK_AS_AVX): New.
1238 * configure.ac: Use it.
1239 * config.h.in, configure: Rebuild.
1240 * config/x86/x86_avx.cc: Handle !HAVE_AS_AVX.
1241
79b1edb6
RH
12422011-11-09 Richard Henderson <rth@redhat.com>
1243
1244 * barrier.tpl, memcpy.cc, memset.cc, method-wbetl.cc: Remove file.
1245 * config/alpha/unaligned.h: Remove file.
1246 * config/generic/unaligned.h: Remove file.
1247 * config/x86/unaligned.h: Remove file.
1248 * config/generic/cachepage.h: Remove file.
1249 * config/posix/cachepage.cc: Remove file.
1250 * config/generic/cacheline.cc: Remove file.
1251 * config/x86/cacheline.cc: Remove file.
1252 * config/generic/cacheline.h (gtm_cacheline): Remove the
1253 store_mask, copy_mask, copy_mask_wb methods.
1254 * config/x86/cacheline.h: Likewise.
1255 * config/alpha/cacheline.h: Fall back to generic after setting size.
1256 * config/generic/tls.cc (gtm_mask_stack): Remove.
1257 * config/x86/x86_avx.cc (GTM_vpperm_shift): Remove.
1258 (GTM_vpalignr_table): Remove.
1259 * config/x86/x86_sse.cc (GTM_palignr_table): Remove.
1260 (GTM_pshift_table): Remove.
1261 * config/libitm_i.h: Don't include cachepage.h.
1262 * Makefile.am (libitm_la_SOURCES): Remove cacheline.cc, cachepage.cc
1263 * Makefile.in, testsuite/Makefile.in: Rebuild.
1264
4bdd090f
RH
12652011-11-09 Richard Henderson <rth@redhat.com>
1266
8ee9fac2
RH
1267 * config/x86/cacheline.h (gtm_cacheline::store_mask): Use .byte
1268 to emit branch prediction hint.
1269
9bdc6343
RH
1270 * config/x86/sjlj.S: Protect elf directives with __ELF__.
1271 Protect .note.GNU-stack with __linux__.
1272
4bdd090f
RH
1273 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Test it.
1274 * configure, aclocal.m4, config.h.in: Rebuild.
1275 * config/generic/asmcfi.h: New file.
1276 * config/x86/sjlj.S: Use it.
1277
4408b086
RH
12782011-11-08 Richard Henderson <rth@redhat.com>
1279
1280 * local.cc (_ITM_LB): Use a normal call, not a function alias.
1281
01f3428c
RH
12822011-11-08 Richard Henderson <rth@redhat.com>
1283
3d3b05ff
RH
1284 * configure.tgt: Test correct directory for supported cpus.
1285
01f3428c
RH
1286 * configure.ac: Exit if unsupported.
1287 * configure: Rebuild.
1288 * configure.tgt: Delete boilerplate from libgomp for unsupported
1289 targets. Set UNSUPPORTED for unsupported targets.
1290
07f03cd3
RO
12912011-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1292
1293 * configure.tgt: Handle i386 like i[456]86.
1294 * config/generic/tls.h [!HAVE_ARCH_GTM_THREAD] (gtm_thr): Don't
1295 take address.
1296 * config/generic/tls.cc [!HAVE_ARCH_GTM_THREAD ||
1297 !HAVE_ARCH_GTM_THREAD_DISP] (_gtm_thr_tls): New variable.
1298
0a35513e
AH
12992011-11-05 Aldy Hernandez <aldyh@redhat.com>
1300
1301 * method-wbetl.cc: Update copyright notice.
1302 * aatree.cc: Same.
1303 * util.cc: Same.
1304 * libitm.h: Same.
1305 * memset.cc: Same.
1306 * eh_cpp.cc: Same.
1307 * barrier.tpl: Same.
1308 * useraction.cc: Same.
1309 * stmlock.h: Same.
1310 * memcpy.cc: Same.
1311 * common.h: Same.
1312 * config/generic/tls.cc: Same.
1313 * config/generic/cacheline.h: Same.
1314 * config/generic/cachepage.h: Same.
1315 * config/generic/cacheline.cc: Same.
1316 * config/generic/unaligned.h: Same.
1317 * config/x86/cacheline.h: Same.
1318 * config/x86/cacheline.cc: Same.
1319 * config/x86/unaligned.h: Same.
1320 * config/alpha/cacheline.h: Same.
1321 * config/alpha/unaligned.h: Same.
1322 * config/alpha/sjlj.S: Same.
1323 * config/posix/cachepage.cc: Same.
1324 * config/linux/futex.h: Same.
1325 * config/linux/alpha/futex_bits.h: Same.
1326
13272011-11-04 Torvald Riegel <triegel@redhat.com>
1328
1329 * libitm.texi: No cover text and invariant sections.
1330
13312011-11-03 Richard Henderson <rth@redhat.com>
1332
1333 * local_type_traits: New file.
1334 * libitm_i.h: Use it. Use C headers, not C++ wrappers.
1335
13362011-11-03 Richard Henderson <rth@redhat.com>
1337
1338 * configure.ac: Don't test for gfortran.
1339 * configure: Rebuild.
1340
1341 * testsuite/lib/libitm.exp: Don't include gfortran-dg.exp.
1342 * testsuite/libitm.c++/c++.exp: Don't use gfortran-dg-runtest.
1343
13442011-11-03 Aldy Hernandez <aldyh@redhat.com>
1345
1346 * testsuite/libitm.c/memcpy-1.c: Add copyright notice.
1347 * testsuite/libitm.c/memset-1.c: Same.
1348 * testsuite/libitm.c/c.exp: Same.
1349 * testsuite/lib/libitm-dg.exp: Same.
1350 * testsuite/lib/libitm.exp: Same.
1351 * testsuite/libitm.c++/c++.exp: Same.
1352
13532011-11-03 Aldy Hernandez <aldyh@redhat.com>
1354
1355 * testsuite/config/default.exp: Update copyright date.
1356 * configure.ac: Add copyright info.
1357 * configure.tgt: Same.
1358
13592011-11-03 Aldy Hernandez <aldyh@redhat.com>
1360
1361 * testsuite/libitm.c/reentrant.c: XFAIL.
1362 * testsuite/libitm.c++/static_ctor.C: XFAIL.
1363
13642011-10-29 Torvald Riegel <triegel@redhat.com>
1365
1366 * beginend.cc (GTM::gtm_thread::rollback): Add aborting flag and
1367 handle aborts.
1368 (_ITM_abortTransaction): Handle aborts of outer transactions.
1369 * libitm_i.h: Same.
1370 * eh_cpp.cc (GTM::gtm_thread::revert_cpp_exceptions): Fix assertion.
1371 * libitm.texi: Document aborts of outer transactions.
1372 * testsuite/libitm.c/cancel.c: New file.
1373
13742011-10-19 Torvald Riegel <triegel@redhat.com>
1375
1376 * testsuite/*: Change __transaction to __transaction_atomic or
1377 __transaction_relaxed.
1378
13792011-10-19 Torvald Riegel <triegel@redhat.com>
1380
1381 * config/linux/x86/tls.h (abi_disp): Make TLS slot read volatile.
1382 (gtm_thr): Same.
1383
13842011-10-19 Torvald Riegel <triegel@redhat.com>
1385
1386 * libitm_i.h: Add gl_wt dispatch.
1387 * retry.cc (parse_default_method): Same.
1388 * method-gl.cc: New file.
1389 * Makefile.am: Use method-gl.cc.
1390 * Makefile.in: Rebuild.
1391
13922011-10-19 Torvald Riegel <triegel@redhat.com>
1393
1394 * beginend.cc (GTM::gtm_thread::trycommit): Ensure privatization
1395 safety if requested by a TM method.
1396 * dispatch.h (GTM::abi_dispatch::trycommit): Add parameter for
1397 privatization safety.
1398 * method-serial.cc: Same.
1399
14002011-10-19 Torvald Riegel <triegel@redhat.com>
1401
1402 * libitm_i.h: Renamed gtm_local_undo to gtm_undolog_entry.
1403 (GTM::gtm_thread): Renamed local_undo to undolog. Renamed
1404 undolog-related member functions from *_local to *_undolog.
1405 * local.cc (gtm_thread::commit_undolog): Same.
1406 * beginend.cc (GTM::gtm_thread::trycommit): Same.
1407 (GTM::gtm_thread::rollback): Roll back undolog before
1408 dispatch-specific rollback.
1409
14102011-10-19 Torvald Riegel <triegel@redhat.com>
1411
1412 * retry.cc (GTM::gtm_thread::decide_retry_strategy): Handle
1413 re-initialization of the current method group.
1414 * libitm_i.h (GTM::gtm_restart_reason): Add restart reason for this.
1415
14162011-10-19 Torvald Riegel <triegel@redhat.com>
1417
1418 * alloc.cc (commit_allocations_2): Do not free transaction-local
1419 memory when committing a nested transaction.
1420
14212011-10-19 Torvald Riegel <triegel@redhat.com>
1422
1423 * method-serial.cc (GTM::gtm_thread::serialirr_mode): Fixed: Use
1424 serial-irrevocable dispatch, not serial.
1425
14262011-10-19 Torvald Riegel <triegel@redhat.com>
1427
1428 * libitm_i.h (GTM::gtm_restart_reason): Re-arrange and clean up
1429 declarations.
1430 * dispatch.h (GTM::abi_dispatch::begin_or_restart): New.
1431 * method-serial.cc: Implement begin_or_restart().
1432 * beginend.cc (GTM::gtm_thread::begin_transaction): Call
1433 dispatch-specific begin_or_restart().
1434 (GTM::gtm_thread::restart): Same.
1435
14362011-08-23 Torvald Riegel <triegel@redhat.com>
1437
1438 * retry.cc (GTM::gtm_thread::decide_retry_strategy): Cleanup. Fix
1439 restarting without switching to serial mode.
1440 (GTM::gtm_thread::decide_begin_dispatch): Let the caller set the
1441 transaction state. Choose closed-nesting alternative if available.
1442 (GTM::gtm_thread::set_default_dispatch): New.
1443 (parse_default_method): New.
1444 (GTM::gtm_thread::number_of_threads_changed): New.
1445 * method-serial.cc (GTM::serial_mg): New method group class.
1446 (GTM::serialirr_dispatch): Belongs to serial_mg. Remove reinit and
1447 fini.
1448 (GTM::serial_dispatch): Same.
1449 (GTM::serialirr_onwrite_dispatch): Same.
1450 (GTM::gtm_thread::serialirr_mode): Remove calls to fini.
1451 * beginend.cc (GTM::gtm_thread::~gtm_thread): Maintain number of
1452 registered threads.
1453 (GTM::gtm_thread::gtm_thread): Same.
1454 (_ITM_abortTransaction): Remove calls to abi_dispatch::fini().
1455 (GTM::gtm_thread::trycommit): Same. Reset number of restarts.
1456 (GTM::gtm_thread::begin_transaction): Let decide_begin_dispatch()
1457 choose dispatch but set state according to dispatch here.
1458 * dispatch.h (GTM::abi_dispatch::fini): Move to method group.
1459 (GTM::method_group): New class.
1460 (GTM::abi_dispatch): Add comments. Maintain pointer to method_group.
1461 * libitm_i.h (GTM::gtm_thread): Add declarations for new members.
1462 * libitm.texi: Document TM methods, method groups, method life cycle.
1463 Rename method sets to method groups.
1464
14652011-08-23 Torvald Riegel <triegel@redhat.com>
1466
1467 * config/x86/tls.h: Moved to ...
1468 * config/linux/x86/tls.h: ... here.
1469
14702011-08-23 Torvald Riegel <triegel@redhat.com>
1471
1472 * config/x86/tls.h: Use __x86_64__ instead of __LP64__.
1473 Add X32 support.
1474 * config/x86/sjlj.S: Same.
1475
14762011-08-19 Torvald Riegel <triegel@redhat.com>
1477
1478 * config/linux/rwlock.h: New file.
1479 * config/linux/rwlock.c: New file.
1480 * configure.ac: Reenable futex support (undo SVN rev 157758).
1481 * Makefile.am: Same.
1482 * configure.tgt: Same.
1483 * config/linux/alpha/futex_bits.h: Same.
1484 * config/linux/futex.h: Same. Return number of woken processes.
1485 * config/linux/futex.cc: Same.
1486 (futex_wait): Remove spinning.
1487 * config/linux/x86/futex_bits.h: Same. Set futex timeout to zero.
1488 Use __x86_64__ instead of __LP64__.
1489 * aclocal.m4: Include generic futex checks.
1490 * configure: Rebuild.
1491 * Makefile.in: Rebuild.
1492 * testsuite/Makefile.in: Rebuild.
1493 * beginend.cc: Include pthread.h.
1494 * config/posix/cachepage.cc: Same.
1495
14962011-08-12 Torvald Riegel <triegel@redhat.com>
1497
1498 * config/x86/tls.h (gtm_tx, set_gtm_tx, setup_gtm_thr): Removed.
1499 (abi_disp, set_abi_disp): Move to tx's TLS slot.
1500 (set_gtm_thr): New.
1501 * config/generic/tls.h (gtm_tx, set_gtm_tx, setup_gtm_thr): Removed.
1502 (set_gtm_thr): New.
1503 (GTM::gtm_thread::thread_num): Removed.
1504 (GTM::gtm_thread): Renamed to GTM::gtm_thread_tls.
1505 * libitm_i.h (GTM::gtm_transaction): Renamed to GTM::gtm_thread. More
1506 tx-to-thread renaming.
1507 * beginend.cc: Adapted to tx-to-thread renaming.
1508 (GTM::gtm_thread::~gtm_thread): Extracted from thread_exit_handler().
1509 (GTM::gtm_thread::gtm_thread): Extracted from begin_transaction().
1510 * query.cc (_ITM_getTransactionId, _ITM_inTransaction): Renamed
1511 gtm_transaction to gtm_thread.
1512 (_ITM_getThreadnum): Removed. Not supported anymore.
1513 * testsuite/libitm.c/notx.c (main): Removed _ITM_getThreadnum call.
1514 * libitm.texi: Documented that _ITM_getThreadnum is not supported.
1515 * useraction.cc: Renamed gtm_transaction to gtm_thread. Adapted to
1516 gtm_tx-to-gtm_thr renaming if necessary.
1517 * eh_cpp.cc: Same.
1518 * local.cc: Same.
1519 * retry.cc: Same.
1520 * clone.cc: Same.
1521 * alloc.cc: Same.
1522 * alloc_c.cc: Same.
1523 * alloc_cpp.cc: Same.
1524 * method-serial.cc: Same.
1525 * config/generic/tls.cc: Same.
1526 * config/posix/rwlock.h (gtm_rwlock): Same.
1527 * config/posix/rwlock.cc: Same. Adapted to more tx-to-thread renaming.
1528
15292011-08-12 Torvald Riegel <triegel@redhat.com>
1530
1531 * config/posix/rwlock.cc (gtm_rwlock::read_lock): Changed locking
1532 implementation.
1533 (gtm_rwlock::read_unlock): Same.
1534 (gtm_rwlock::write_lock_generic): New. Generalized from ...
1535 (gtm_rwlock::write_lock, gtm_rwlock::write_upgrade): ... these.
1536 * libitm_i.h (GTM::gtm_transaction): Added shared_state.
1537 * config/posix/rwlock.h (GTM::gtm_rwlock): Removed a_reader and
1538 w_upgrade. Replaced by per-transaction flags (in shared_state).
1539 Added c_confirmed_writers.
1540 (GTM::gtm_rwlock::read_lock, GTM::gtm_rwlock::read_unlock,
1541 GTM::gtm_rwlock::write_upgrade): Add tx parameter.
1542 * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Same.
1543 * method-serial.cc (GTM::gtm_transaction::serialirr_mode): Same.
1544 * beginend.cc (GTM::gtm_transaction::begin_transaction,
1545 _ITM_abortTransaction, GTM::gtm_transaction::trycommit): Same.
1546 * libitm.texi: Document locking conventions and implementations in
1547 libitm.
1548
15492011-08-12 Torvald Riegel <triegel@redhat.com>
1550
1551 * libitm_i.h (next_tx): Add list of all threads' transaction.
1552 * beginend.cc (GTM::gtm_transaction::begin_transaction): Register
1553 transaction with list of transactions and ...
1554 (thread_exit_handler): ... deregister here.
1555 * config/alpha/target.h: Add HW_CACHELINE_SIZE setting.
1556 * config/x86/target.h: Same.
1557
15582011-08-12 Torvald Riegel <triegel@redhat.com>
1559
1560 * testsuite/libitm.c++/static_ctor.C: New file.
1561
15622011-08-12 Torvald Riegel <triegel@redhat.com>
1563
1564 * testsuite/libitm.c/reentrant.c: New file.
1565
15662011-08-12 Torvald Riegel <triegel@redhat.com>
1567
1568 * config/generic/tls.h: Remove the free list for transactions and ...
1569 * beginend.cc (GTM::gtm_transaction::operator new): ... allocate ...
1570 (GTM::gtm_transaction::operator delete): ... and release here.
1571 (thread_exit_handler): New. Delete tx when thread terminates.
1572 (thread_exit_init): New.
1573 (GTM::gtm_transaction::begin_transaction): Set up on-exit handler.
1574 * testsuite/libitm.c/txrelease.c: New file.
1575
15762011-08-12 Torvald Riegel <triegel@redhat.com>
1577
1578 * query.cc (_ITM_getThreadnum): Set up gtm_thread if necessary.
1579 * testsuite/libitm.c/notx.c: New file.
1580
15812011-08-12 Torvald Riegel <triegel@redhat.com>
1582
1583 * config/generic/tls.h (gtm_thread): Move local_tid from here ...
1584 * libitm_i.h (local_tid): ... to here.
1585 * beginend.cc (GTM::gtm_transaction::begin_transaction): Same.
1586 (GTM::gtm_transaction::operator new): Set up gtm_thread if necessary.
1587
15882011-08-12 Torvald Riegel <triegel@redhat.com>
1589
1590 * retry.cc (GTM::gtm_transaction::decide_begin_dispatch): Use
1591 serialirr_onwrite_dispatch as new default for now.
1592 * method-serial.cc (serialirr_onwrite_dispatch): New.
1593 (GTM::dispatch_serialirr_onwrite): New.
1594 * libitm_i.h: Same.
1595
15962011-08-12 Torvald Riegel <triegel@redhat.com>
1597
1598 * beginend.cc (GTM::gtm_transaction::rollback): Roll back tx id as well.
1599 * query.cc (_ITM_getTransactionId): There is no active transaction if
1600 the current nesting level is zero.
1601
16022011-07-28 Torvald Riegel <triegel@redhat.com>
1603
1604 * beginend.cc (GTM::gtm_transaction::rollback): Fix nesting level
1605 rollback.
1606
16072011-07-28 Torvald Riegel <triegel@redhat.com>
1608
1609 * retry.cc (GTM::gtm_transaction::decide_begin_dispatch): Get
1610 transaction properties from the caller instead of from the
1611 transaction object.
1612 * libitm_i.h: Same.
1613 * beginend.cc (GTM::gtm_transaction::begin_transaction): Same.
1614
16152011-07-28 Torvald Riegel <triegel@redhat.com>
1616
1617 * local.cc (gtm_transaction::rollback_local): Support closed nesting.
1618 * eh_cpp.cc (GTM::gtm_transaction::revert_cpp_exceptions): Same.
1619 * dispatch.h: Same.
1620 * method-serial.cc: Same.
1621 * beginend.cc (GTM::gtm_transaction::begin_transaction): Change to
1622 flat nesting as default, and closed nesting on demand.
1623 (GTM::gtm_transaction::rollback): Same.
1624 (_ITM_abortTransaction): Same.
1625 (GTM::gtm_transaction::restart): Same.
1626 (GTM::gtm_transaction::trycommit): Same.
1627 (GTM::gtm_transaction::trycommit_and_finalize): Removed.
1628 (choose_code_path): New.
1629 (GTM::gtm_transaction_cp::save): New.
1630 (GTM::gtm_transaction_cp::commit): New.
1631 * query.cc (_ITM_inTransaction): Support flat nesting.
1632 * libitm_i.h (GTM::gtm_transaction_cp): New helper struct for nesting.
1633 (GTM::gtm_transaction): Support flat and closed nesting.
1634 * alloc.cc (commit_allocations_2): New.
1635 (commit_cb_data): New helper struct.
1636 (GTM::gtm_transaction::commit_allocations): Handle nested
1637 commits/rollbacks.
1638 * libitm.texi: Update user action section, add description of nesting.
1639
16402011-07-28 Torvald Riegel <triegel@redhat.com>
1641
1642 * libitm_i.h: Add closed nesting as restart reason.
1643 * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Same.
1644
16452011-07-28 Torvald Riegel <triegel@redhat.com>
1646
1647 * useraction.cc: Use vector instead of list to store actions.
1648 Also support partial rollbacks for closed nesting.
1649 * libitm_i.h (GTM::gtm_transaction::user_action): Same.
1650 * beginend.cc: Same.
1651
16522011-07-28 Torvald Riegel <triegel@redhat.com>
1653
1654 * dispatch.h (GTM::abi_dispatch): Add can_run_uninstrumented_code and
1655 closed_nesting flags, as well as a closed nesting alternative.
1656 * method-serial.cc: Same.
1657 (serial_dispatch): Renamed to serialirr_dispatch.
1658 (GTM::dispatch_serialirr): Same.
1659 (serial_dispatch_ul): Renamed to serial_dispatch.
1660 (GTM::dispatch_serial): Same.
1661
16622011-07-28 Torvald Riegel <triegel@redhat.com>
1663
1664 * libitm.h (_ITM_codeProperties): Change pr_hasElse to the ABI's value.
1665
16662011-07-28 Torvald Riegel <triegel@redhat.com>
1667
1668 * aatree.h (aa_tree::remove): New.
1669 (aa_tree::operator new): Add placement new.
1670
16712011-07-02 Torvald Riegel <triegel@redhat.com>
1672
1673 * containers.h: New file.
1674 * util.cc (xmalloc, xrealloc): Accept cacheline-alloc flag.
1675 * libitm_i.h (xmalloc, xrealloc): Moved declarations from here ...
1676 * common.h: ... to here.
1677 (local_undo): Use GTM::vector for gtm_transaction::local_undo.
1678 * local.cc: Same.
1679
16802011-06-30 Torvald Riegel <triegel@redhat.com>
1681
1682 * libitm_i.h (STATE_ABORTING): Remove.
1683 * beginend.cc (_ITM_abortTransaction): Same.
1684 (GTM::gtm_transaction::trycommit_and_finalize): Same.
1685 * libitm.h (_ITM_registerThrownObject, _ITM_tryCommitTransaction): Remove.
1686 (_ITM_rollbackTransaction): Remove.
1687 * beginend.cc: Same.
1688 * libitm.map: Same.
1689 * libitm.texi: Document these ABI changes.
1690
16912011-06-30 Torvald Riegel <triegel@redhat.com>
1692
1693 * libitm.texi: New file.
1694 * Makefile.am: Add libitm.texi.
1695 * Makefile.in: Rebuild.
1696
16972011-06-30 Torvald Riegel <triegel@redhat.com>
1698
1699 * libitm_i.h: Move parts to common.h and dispatch.h.
1700 * common.h: New file.
1701 * dispatch.h: New file, new dispatch class.
1702 Rename GTM::abi_dispatch::lock_type to ls_modifier.
1703 RenameGTM::abi_dispatch::NOLOCK to NONTXNAL.
1704 * beginend.cc (GTM::gtm_transaction::begin_transaction): Delegate mode
1705 decision to retry.cc.
1706 * retry.cc (GTM::gtm_transaction::decide_retry_strategy): Use serial mode
1707 only.
1708 (GTM::gtm_transaction::decide_begin_dispatch): Same.
1709 * method-serial.cc: Adapt to new dispatch. Add serial mode with undo
1710 logging.
1711 * barrier.cc: Use new barriers definitions.
1712 (abi_dispatch::memmove_overlap_check): New.
1713 * config/x86/x86_sse.cc: Same.
1714 * config/x86/x86_avx.cc: Same.
1715 * Makefile.am: Don't build readonly and wbetl methods, memset.cc and
1716 memcpy.cc.
1717 * Makefile.in: Rebuild.
1718 * method-readonly.cc: Remove.
1719 * method-wbetl.cc: Rename GTM::abi_dispatch::lock_type to ls_modifier.
1720 Rename GTM::abi_dispatch::NOLOCK to NONTXNAL.
1721
17222011-06-30 Torvald Riegel <triegel@redhat.com>
1723
1724 * alloc_c.cc (_ITM_dropReferences): Don't support it anymore.
1725 * testsuite/libitm.c++/dropref.C: _ITM_dropReferences is expected to fail.
1726 * testsuite/libitm.c/dropref-2.c: Same.
1727 * testsuite/libitm.c/dropref.c: Same.
1728
17292011-06-30 Torvald Riegel <triegel@redhat.com>
1730
1731 * config/generic/tls.h (gtm_disp): Rename to abi_disp.
1732 * config/generic/tls.h (set_gtm_disp): Rename to set_abi_disp.
1733 * libitm_i.h: Rename gtm_dispatch to abi_dispatch.
1734 * alloc_c.cc: Same.
1735 * barrier.tpl: Same.
1736 * beginend.c: Same.
1737 * config/generic/tls.h: Same.
1738 * config/x86/tls.h: Same.
1739 * libitm_i.h: Same.
1740 * memcpy.cc: Same.
1741 * memset.cc: Same.
1742 * method-readonly.cc: Same.
1743 * method-serial.cc: Same.
1744 * method-wbetl.cc: Same.
1745 * retry.cc: Same.
1746
17472011-03-03 Richard Henderson <rth@redhat.com>
1748
1749 * config/posix/rwlock.cc (write_upgrade): Add missing case.
1750 From Patrik Marlier <patrick.marlier@unine.ch>.
1751
17522011-02-03 Richard Henderson <rth@redhat.com>
1753
1754 * acinclude.m4 (LIBITM_CHECK_SIZE_T_MANGLING): New.
1755 * configure.ac: Use it.
1756 * configure, config.h.in: Rebuild.
1757 * alloc_cpp.cc (_ZnwX): Use MANGLE_SIZE_T in constructing the name.
1758 (_ZnaX, _ZnwXRKSt9nothrow_t, _ZnaXRKSt9nothrow_t, _ZGTtnwX,
1759 _ZGTtnaX, _ZGTtnwXRKSt9nothrow_t, _ZGTtnaXRKSt9nothrow_t): Likewise.
1760 * libitm.map: Use wildcards to match size_t mangling.
1761
17622010-12-14 Richard Henderson <rth@redhat.com>
1763
1764 * beginend.cc (GTM::gtm_transaction::begin_transaction): Allocate
1765 blocks of TIDs per thread.
1766 * config/generic/tls.h (struct gtm_thread): Add local_tid member.
1767 (setup_gtm_thr): Return the thread structure.
1768 * config/x86/tls.h (setup_gtm_thr): Likewise.
1769
17702010-12-14 Richard Henderson <rth@redhat.com>
1771
1772 * clone.cc (table_lock): Remove.
1773 (find_clone): Don't take it.
1774 (ExcludeTransaction): New helper class.
1775 (_ITM_registerTMCloneTable): Use it.
1776 (_ITM_deregisterTMCloneTable): Likewise.
1777
17782010-12-14 Richard Henderson <rth@redhat.com>
1779
1780 * config/x86/tls.h: New file.
1781
17822010-07-15 Richard Henderson <rth@redhat.com>
1783
1784 * Makefile.am (AM_CXXFLAGS): Add -funwind-tables.
1785 * Makefile.in: Rebuild.
1786
17872010-07-13 Aldy Hernandez <aldyh@redhat.com>
1788
1789 * method-wbetl.cc (trydropreference): Fix source line.
1790
17912010-07-13 Aldy Hernandez <aldyh@redhat.com>
1792
1793 * libitm.h: Add comment.
1794 * libitm_i.h (begin_transaction): Add ITM_REGPARM.
1795
17962010-07-07 Aldy Hernandez <aldyh@redhat.com>
1797
1798 * configure.ac: Call LIBITM_CHECK_64BIT_SYNC_BUILTINS.
1799 * beginend.cc (begin_transaction): If 64-bit sync builtins are not
1800 available, use pthread mutexes.
1801 * acinclude.m4 (LIBITM_CHECK_64BIT_SYNC_BUILTINS): New.
1802 * config.h.in: Regenerate.
1803 * configure: Regenerate.
1804
18052010-07-06 Aldy Hernandez <aldyh@redhat.com>
1806
1807 * libitm.h (ITM_PURE): Define.
1808 Declare _ITM_malloc, _ITM_calloc, and _ITM_free.
1809
18102010-06-28 Aldy Hernandez <aldyh@redhat.com>
1811
1812 * method-wbetl.cc (class wbetl_dispatch): Add trydropreference.
1813 (validate): Add comment.
1814 (trydropreference): New.
1815 * method-readonly.cc (class readonly_dispatch): Add
1816 trydropreference.
1817 * alloc_c.cc (_ITM_dropReferences): Remove const attribute.
1818 Call trydropreference().
1819 * libitm.h (_ITM_dropReferences): Remove const attribute.
1820 * method-serial.cc (class serial_dispatch): Add trydropreference.
1821 * libitm_i.h (struct gtm_dispatch): Add trydropreference.
1822
18232010-06-28 Aldy Hernandez <aldyh@redhat.com>
1824
1825 * memcpy.cc (do_memcpy): Comment.
1826
18272010-06-25 Aldy Hernandez <aldyh@redhat.com>
1828
1829 * barrier.tpl: Add comments throughout.
1830
18312010-06-24 Aldy Hernandez <aldyh@redhat.com>
1832
1833 * method-wbetl.cc (struct w_entry): Add comments.
1834 (trycommit): Same.
1835 (rollback): Same.
1836
18372010-06-24 Aldy Hernandez <aldyh@redhat.com>
1838
1839 * alloc_c.cc (_ITM_dropReferences): New.
1840 * libitm.map (_ITM_dropReferences): Add.
1841 * libitm.h (_ITM_dropReferences): Add transaction_pure attribute.
1842 * libitm_i.h (struct gtm_transaction): Declare
1843 drop_references_allocations and drop_references_local.
1844 * local.cc (rollback_local): Ignore memory when applicable.
1845 (drop_references_local): New.
1846
18472010-06-23 Richard Henderson <rth@redhat.com>
1848
1849 * barrier.tpl, beginend.cc, clone.cc, tls.h, memcpy.cc,
1850 memset.cc, method-serial.cc: Revert the 2010-06-16 change.
1851 * config/x86/target.h (struct gtm_jmpbuf): Change CFA type to void*.
1852 * config/alpha/target.h: Likewise.
1853 * config/generic/tls.cc (gtm_mask_stack): Use it.
1854
18552010-06-23 Richard Henderson <rth@redhat.com>
1856
1857 * config/posix/cachepage.cc (gtm_cacheline_page::operator new): Use
1858 a mutex instead of trying a lock-free compare-and-swap on the list.
1859 (gtm_cacheline_page::operator delete): Likewise.
1860
18612010-06-16 Richard Henderson <rth@redhat.com>
1862
1863 * method-wbetl.cc (wbetl_dispatch::trycommit): Discard changes
1864 that overlap the libitm stack.
1865 * barrier.tpl: Mark incoming stack.
1866 * beginend.cc (_ITM_rollbackTransaction, _ITM_abortTransaction,
1867 _ITM_commitTransaction, _ITM_commitTransactionEH): Likewise.
1868 * clone.cc (_ITM_getTMCloneOrIrrevocable): Likewise.
1869 * memcpy.cc, memset.cc: Likewise.
1870 * method-serial.cc (_ITM_changeTransactionMode): Likewise.
1871 * config/generic/tls.h (gtm_thread): Add stack_top member.
1872 (gtm_stack_top, set_gtm_stack_top, struct gtm_stack_marker): New.
1873 * libitm_i.h (gtm_mask_stack): Declare.
1874 * config/generic/tls.cc: New file.
1875 * Makefile.am (libitm_la_SOURCES): Add it.
1876 (AM_CXXFLAGS): Turn off exceptions.
1877 * Makefile.in: Rebuild.
1878
18792010-06-16 Richard Henderson <rth@redhat.com>
1880
1881 * alloc.cc (struct gtm_alloc_action): Move definition ...
1882 * libitm_i.h: ... here.
1883 (class gtm_transaction): Declare new and delete.
1884 * beginend.cc (alloc_tx): Reformulate as operator new.
1885 (free_tx): Reformulate as operator delete.
1886 * config/generic/tls.h (gtm_thread): Change free_tx member to void *.
1887
18882010-06-11 Richard Henderson <rth@redhat.com>
1889
1890 * clone.cc (clone_entry_compare): Fix typo.
1891 From Patrik Marlier <patrick.marlier@unine.ch>.
1892
18932010-05-13 Richard Henderson <rth@redhat.com>
1894
1895 * alloc_c.cc (_ITM_malloc, _ITM_calloc, _ITM_free): Wrap functions
1896 in extern "C".
1897
18982010-05-07 Aldy Hernandez <aldyh@redhat.com>
1899
1900 * libitm_i.h (struct gtm_transaction): Remove
1901 get_allocation_size.
1902 (record_allocation): Remove size parameter.
1903 * libitm.map (_ITM_realloc): Remove.
1904 * alloc_c.cc (_ITM_realloc): Remove.
1905 (_ITM_malloc): Remove size argument to record_allocation.
1906 (_ITM_calloc): Same.
1907 * alloc_cpp.cc (_ZGTtnwm): Same.
1908 (_ZGTtnwmRKSt9nothrow_t): Same.
1909 (_ZGTtnam): Same.
1910 (_ZGTtnamRKSt9nothrow_t): Same.
1911 * alloc.cc (struct gtm_alloc_action): Remove size.
1912 (get_allocation_size): Remove.
1913 (commit_allocations): Add comment.
1914 (record_allocation): Remove size parameter.
1915 (forget_allocation): Remove set of size.
1916
19172010-04-19 Aldy Hernandez <aldyh@redhat.com>
1918
1919 * Makefile.am (abi_version): New.
1920 (AM_CXXFLAGS): Pass abi_version.
1921 * Makefile.in: Regenerate.
1922 * config/x86/unaligned.h: Remove always_inline kludge for vectors.
1923
19242010-04-06 Aldy Hernandez <aldyh@redhat.com>
1925
1926 * clone.cc (_ITM_getTMCloneOrIrrevocable): Rename from
1927 _ITM_getTMCloneOrIrrevokable.
1928 * libitm.h (_ITM_getTMCloneOrIrrevocable): Same.
1929 * libitm.map (_ITM_getTMCloneOrIrrevocable): Same.
1930
19312010-03-26 Aldy Hernandez <aldyh@redhat.com>
1932
1933 * configure.ac: Remove Linux futex support.
1934 * configure.tgt (config_path): Same.
1935 * Makefile.am: Same.
1936 * config/linux: Remove entire directory.
1937 * configure: Rebuild.
1938 * Makefile.in: Rebuild.
1939 * testsuite/Makefile.in: Rebuild.
1940
19412010-03-09 Aldy Hernandez <aldyh@redhat.com>
1942
1943 * retry.cc (decide_retry_strategy): Set state to STATE_SERIAL when
1944 switching to serial mode.
1945 * beginend.cc (trycommit_and_finalize): Unlock serial_lock.
1946
19472010-03-03 Aldy Hernandez <aldyh@redhat.com>
1948
1949 * configure.tgt: Add emacs -*- tags.
1950 * barrier.tpl: Same.
1951
19522010-02-23 Aldy Hernandez <aldyh@redhat.com>
1953
1954 * Makefile.am: Rename serial.cc to method-serial.cc.
1955 * Makefile.in: Regenerate with automake 1.11.1.
1956 * testsuite/Makefile.in: Same.
1957 * aclocal.m4: Regenerate with aclocal 1.11.1.
1958 * method-serial.cc: Rename from serial.cc.
1959 * libitm_i.h (struct gtm_transaction): Update comment on
1960 serialirr_mode.
1961
19622010-02-22 Aldy Hernandez <aldyh@redhat.com>
1963
1964 * libitm_i.h (GTM_longjmp): Add ITM_REGPARM.
1965 * config/linux/rwlock.h (class gtm_rwlock): Add comments.
1966
19672010-02-11 Aldy Hernandez <aldyh@redhat.com>
1968
1969 * configure: Rebuild.
1970
19712009-11-12 Richard Henderson <rth@redhat.com>
1972
1973 * Rewrite everything in C++.
1974
19752009-11-03 Richard Henderson <rth@redhat.com>
1976
1977 * config/x86/x86_sse.c, config/x86/x86_avx.c: New files.
1978 * Makefile.am (libitm_la_SOURCES): Add them.
1979 * configure.ac (ARCH_X86): New conditional.
1980 * Makefile.in, configure: Rebuild.
1981 * configure.tgt: Set up ARCH; do cflags setup at the same time.
1982 Move futex setup into "other system configury" case.
1983 * local.c (rollback_local): Merge into ...
1984 (GTM_rollback_local): ... here.
1985 (GTM_LB): Rename from GTM_alloc_local; do the memcpy here.
1986 (_ITM_LB): Define as an alias to GTM_LB.
1987
19882009-11-03 Richard Henderson <rth@redhat.com>
1989
1990 * method-readonly.c: New file.
1991 * Makefile.am (libitm_la_SOURCES): Add it.
1992 * Makefile.in: Rebuild.
1993 * beginend.c (gtm_stmlock_array, gtm_clock): New.
1994 (GTM_begin_transaction): Use dispatch_readonly for read-only txn.
1995 * libitm_i.h (gtm_stmlock, gtm_version): Move from method-wbetl.c.
1996 (GTM_VERSION_MAX, GTM_VERSION_INVALID, gtm_stmlock_owned_p,
1997 gtm_stmlock_set_owned, gtm_stmlock_get_addr,
1998 gtm_stmlock_get_version, gtm_stmlock_set_version, LOCK_ARRAY_SIZE,
1999 gtm_stmlock_array, gtm_get_stmlock, gtm_clock, RESTART_NOT_READONLY,
2000 gtm_get_clock, gtm_inc_clock): New.
2001 * method-wbetl.c (gtm_version, gtm_stmlock, OWNED_MASK, VERSION_MAX,
2002 LOCK_GET_OWNED, LOCK_SET_ADDR, LOCK_GET_ADDR, LOCK_GET_TIMESTAMP,
2003 LOCK_SET_TIMESTAMP, LOCK_ARRAY_SIZE, LOCK_MASK, LOCK_IDX, GET_LOCK,
2004 locks, gclock, CLOCK, GET_CLOCK, FETCH_AND_INC_CLOCK): Remove and
2005 replace uses with new libitm_i.h symbols.
2006 (dispatch_wbetl): Rename from wbetl_dispatch.
2007 * retry.c (GTM_decide_retry_strategy): If RESTART_NOT_READONLY, move
2008 away from dispatch_readonly; abort if the beginTransaction call
2009 asserted that the transaction was readonly.
2010
20112009-11-03 Richard Henderson <rth@redhat.com>
2012
2013 * memset.c: New file.
2014 * Makefile.am (libitm_la_SOURCES): Add it.
2015 * Makefile.in: Rebuild.
2016 * testsuite/libitm.c/memset-1.c: New.
2017
20182009-11-03 Richard Henderson <rth@redhat.com>
2019
2020 * dispatch.c: Remove file.
2021 * useraction.c (struct gtm_user_action): Move from libitm.h.
2022 * serial.c (GTM_null_read_lock, GTM_null_write_lock): New.
2023 (serial_memset, serial_memmove, serial_memcpy): Remove.
2024 (serial_W*, serial_R*): Remove.
2025 (serial_dispatch): Update to match.
2026 * configure.ac: Move Werror down below configure checks. Don't
2027 check for sys/loadavg.h, do check for malloc.h. Don't check for
2028 getloadavg and clock_gettime; do check for memalign, posix_memalign.
2029 Use GCC_AC_FUNC_MMAP_BLACKLIST
2030 * libitm.h: Split out all internal items to...
2031 * libitm_i.h: ... here. New file.
2032 * copymask.c: New file.
2033 * local.c (struct gtm_local_undo): Move from libitm.h.
2034 (GTM_alloc_local): Rename from alloc_local; export.
2035 * memcpy.c: New file.
2036 * alloc_c.c (_ITM_realloc): Use _ITM_memcpyRnWt directly.
2037 * config/posix/page.c: New file.
2038 * config/posix/target_tls.h: Remove file.
2039 * barrier.c: New file.
2040 * Makefile.am (libitm_la_SOURCES): Add barrier.c, memcpy.c,
2041 copymask.c, page.c.
2042 * alloc.c (struct gtm_alloc_action): Move from libitm.h.
2043 * method-wbetl.c: Rewrite for new cacheline methods.
2044 * Makefile.in, configure, testsuite/Makefile.in, config.h.in: Rebuild.
2045
2046 * config/alpha/sjlj.S: Fix typo.
2047 * config/alpha/target_i.h: Copy functions from alpha/target.h.
2048 * config/alpha/copymask.c: New file.
2049 * config/alpha/target.h (CACHELINE_SIZE): New.
2050 (STRICT_ALIGNMENT, PAGE_SIZE, FIXED_PAGE_SIZE): New.
2051
2052 * config/x86/target_i.h: Copy functions from x86/target.h.
2053 * config/x86/copymask.c: New file.
2054 * config/x86/target.h (_ITM_ALL_TARGET_TYPES): Remove.
2055 (CACHELINE_SIZE, STRICT_ALIGNMENT): New.
2056 (PAGE_SIZE, FIXED_PAGE_SIZE): New.
2057 * config/x86/target_tls.h: Move contents to target_i.h.
2058
2059 * testsuite/libitm.c/clone-1.c: Include libitm.h.
2060 * testsuite/libitm.c/memcpy-1.c: New.
2061
20622009-10-22 Richard Henderson <rth@redhat.com>
2063
2064 * Makefile.am (CCAS, CCASFLAGS, LTCCASCOMPILE): Remove.
2065 (AM_CCASFLAGS): New.
2066 * configure.ac: Add AM_PROG_AS. Use m4_rename_force for
2067 saving/restoring _AC_ARG_VAR_PRECIOUS.
2068 * Makefile.in, aclocal.m4, config.h.in, configure,
2069 testsuite/Makefile.in: Rebuild with automake 1.11; autoconf 2.64.
2070
20712009-10-22 Richard Henderson <rth@redhat.com>
2072
2073 * testsuite/*: Update for new compiler syntax.
2074
20752009-10-21 Richard Henderson <rth@redhat.com>
2076
2077 * libitm.h (_ITM_abortReason): Add outerAbort.
2078
20792009-08-03 Richard Henderson <rth@redhat.com>
2080
2081 * libitm.map (_ITM_commitTransactionEH, _ITM_cxa_allocate_exception,
2082 _ITM_cxa_begin_catch, _ITM_cxa_end_catch, _ITM_cxa_throw): Export.
2083 * method-wbetl.c (struct w_entry): Remove mask.
2084 (wbetl_write, wbetl_load): Return pointer to word containing the data;
2085 adjust all callers.
2086
20872009-07-22 Richard Henderson <rth@redhat.com>
2088
2089 * eh_cpp.c: New file.
2090 * Makefile.am (libitm_la_SOURCES): Add it.
2091 * Makefile.in: Rebuild.
2092 * beginend.c (GTM_rollback_transaction): Undo exception state.
2093 (GTM_trycommit_transaction): Mark inline.
2094 (GTM_trycommit_and_finalize_transaction): Split out from ...
2095 (_ITM_commitTransaction): ... here.
2096 (_ITM_commitTransactionEH): New function.
2097 * libitm.h (struct gtm_transaction): Add cxa_catch_count,
2098 cxa_unthrown, eh_in_flight; reorder.
2099
2100 * testsuite/libitm.c++/c++.exp: New.
2101 * testsuite/libitm.c++/eh-1.C: New.
2102
2103 * aatree.c (aa_free): Remove REGPARM.
2104 * aatree.h: Remove all REGPARM.
2105
21062009-07-18 Richard Henderson <rth@redhat.com>
2107
2108 * aatree.c, aatree.h, alloc.c, alloc_c.c, alloc_cpp.c: New files.
2109 * Makefile.am (libitm_la_SOURCES): Add them.
2110 * Makefile.in: Rebuild.
2111 * beginend.c (GTM_rollback_transaction): Use GTM_commit_allocations.
2112 (GTM_trycommit_transaction): Likewise.
2113 * libitm.h: Include aatree.h
2114 (struct gtm_alloc_action): New.
2115 (struct gtm_transaction): Add alloc_actions.
2116 (GTM_record_allocation, GTM_forget_allocation): Declare.
2117 (GTM_get_allocation_size, GTM_commit_allocations): Declare.
2118 * libitm.map (_ITM_malloc, _ITM_calloc, _ITM_realloc, _ITM_free,
2119 _ZGTtnwm, _ZGTtnam, _ZGTtdlPv, _ZGTtdaPv, _ZGTtnwmRKSt9nothrow_t,
2120 _ZGTtnamRKSt9nothrow_t, _ZGTtdlPvRKSt9nothrow_t,
2121 _ZGTtdaPvRKSt9nothrow_t): Export.
2122
21232009-07-18 Richard Henderson <rth@redhat.com>
2124
2125 * target_tls.h: Move ...
2126 * config/posix/target_tls.h: ... here.
2127
21282009-07-07 Richard Henderson <rth@redhat.com>
2129
2130 * config/x86/target.h (atomic_write_barrier): Use sfence if available.
2131
21322009-07-07 Richard Henderson <rth@redhat.com>
2133
2134 * Update to GPL3.
2135
21362009-07-07 Richard Henderson <rth@redhat.com>
2137
2138 * libitm.h (struct gtm_transaction): Widen id to _ITM_transactionId_t.
2139 * beginend.c (global_tid): Widen to _ITM_transactionId_t.
2140
2141 * configure.tgt: Don't use -ftls-model for x86 linux.
2142 * libitm.h: Include target.h after standard includes.
2143 (_gtm_thr): Rename from gtm_thr.
2144 (setup_gtm_thr, gtm_thr, gtm_tx, set_gtm_tx): New.
2145 (gtm_disp, set_gtm_disp): New.
2146 * beginend.c, dispatch.c, local.c, method-wbetl.c, query.c,
2147 retry.c, serial.c, useraction.c: Use accessor functions throughout.
2148 * config/alpha/target_tls.h, config/x86/target_tls.h: New files.
2149
21502009-07-07 Richard Henderson <rth@redhat.com>
2151
2152 * config/linux/rwlock.c (EZ): New define. Use it throughout.
2153
21542009-07-06 Richard Henderson <rth@redhat.com>
2155
2156 * libitm.h (_ITM_SRCLOCATION_DECL_1, _ITM_SRCLOCATION_DECL_2): Remove.
2157 (_ITM_SRCLOCATION_DEFN_1, _ITM_SRCLOCATION_DEFN_2): Remove.
2158 (_ITM_beginTransaction): Take variadic arguments.
2159 (_ITM_registerThrownObject): Declare.
2160 * beginend.c, serial.c: Update.
2161 * libitm.map: Add _ITM_registerThrownObject.
2162
21632009-01-28 Richard Henderson <rth@redhat.com>
2164
2165 * Makefile.am (libitm_la_SOURCES): Add clone.c.
2166 * Makefile.in: Rebuild.
2167 * beginend.c (_ITM_abortTransaction): Abort if irrevokable.
2168 (GTM_restart_transaction): Fix uninstrumented code check.
2169 * retry.c (GTM_decide_retry_strategy): Add serial check.
2170 * serial.c (GTM_serialmode): Add irrevokable variable. Don't
2171 automatically go irrevokable when in serial mode.
2172 * clone.c: New file.
2173 * libitm.h, libitm.map: Update.
2174
21752009-01-27 Richard Henderson <rth@redhat.com>
2176
2177 * Makefile.am (LTCCASCOMPILE): Define.
2178 (libitm_la_SOURCES): Add methid-wbetl.c.
2179 * testsuite/Makefile.am: New
2180 * configure.ac: Add testsuite/Makefile.
2181 * Makefile.in, testsuite/Makefile.in, configure: Regenerate.
2182 * beginend.c (GTM_begin_transaction): Install wbetl_dispatch.
2183 (_ITM_abortTransaction): Finalize implementation method; pass
2184 transaction properties to longjmp.
2185 (GTM_restart_transaction): Split out from ...
2186 (_ITM_commitTransaction): ... here.
2187 * config/linux/x86/futex_bits.h (cpu_relax, atomic_write_barrier):
2188 Move to config/x86/target.h.
2189 * config/linux/alpha/futex_bits.h: New.
2190 * config/x86/sjlj.S (GTM_longjmp): Fix 64-bit input register.
2191 * config/x86/target.h: Disable target types for 32-bit.
2192 * config/alpha/sjlj.S, config/alpha/target.h: New.
2193 * libitm.h (struct gtm_dispatch): Add init, fini.
2194 (enum restart_reason): New.
2195 (struct gtm_transaction): Add method and restarts.
2196 * retry.c (GTM_decide_retry_strategy): Implement.
2197 * serial.c (serial_init, serial_fini): New.
2198 (GTM_serialmode): Finialize outgoing method.
2199 * method-wbetl.c: New.
2200
22012008-12-09 Richard Henderson <rth@redhat.com>
2202
2203 * config/x86/target.h (_ITM_ALL_TARGET_TYPES, _ITM_TYPE_ATTR): New.
2204 * configure.tgt (i386-*, x86_64-*): Don't force SSE.
2205 * dispatch.c (_ITM_##R##T, _ITM_##W##T): Use _ITM_TYPE_ATTR.
2206 * libitm.h (_ITM_ALL_TARGET_TYPES, _ITM_TYPE_ATTR): Provide default.
2207 (_ITM_TYPE_M64, _ITM_TYPE_M128, _ITM_TYPE_M256): Move to x86 header.
2208 (_ITM_ALL_TYPES): Use _ITM_ALL_TARGET_TYPES.
2209 * local.c (_ITM_L##T): Use _ITM_TYPE_ATTR.
2210 * serial.c (serial_R##T, serial_W##T): Likewise.
2211
22122008-11-21 Richard Henderson <rth@redhat.com>
2213
2214 * Initial commit.
21fa2a29 2215\f
8d9254fc 2216Copyright (C) 2008-2020 Free Software Foundation, Inc.
21fa2a29
JJ
2217
2218Copying and distribution of this file, with or without modification,
2219are permitted in any medium without royalty provided the copyright
2220notice and this notice are preserved.