gcc/libitm
Andreas Krebbel 5a3fe9b607 s390.c: Rename UNSPEC_CCU_TO_INT to UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to...
2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
	(struct machine_function): Add tbegin_p.
	(s390_canonicalize_comparison): Fold CC mode compares to
	conditional jump if possible.
	(s390_emit_jump): Return the emitted jump.
	(s390_branch_condition_mask, s390_branch_condition_mnemonic):
	Handle CCRAWmode compares.
	(s390_option_override): Default to -mhtm if available.
	(s390_reg_clobbered_rtx): Handle floating point regs as well.
	(s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
	FPRs instead of df_regs_ever_live_p.
	(s390_optimize_nonescaping_tx): New function.
	(s390_init_frame_layout): Extend clobbered_regs array to cover
	FPRs as well.
	(s390_emit_prologue): Call s390_optimize_nonescaping_tx.
	(s390_expand_tbegin): New function.
	(enum s390_builtin): New enum definition.
	(code_for_builtin): New array definition.
	(s390_init_builtins): New function.
	(s390_expand_builtin): New function.
	(TARGET_INIT_BUILTINS): Define.
	(TARGET_EXPAND_BUILTIN): Define.
	* common/config/s390/s390-common.c (processor_flags_table): Add
	PF_TX.
	* config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
	(s390_alc_comparison): Likewise.
	* config/s390/s390-modes.def: Add CCRAWmode.
	* config/s390/s390.h (processor_flags): Add PF_TX.
	(TARGET_CPU_HTM): Define macro.
	(TARGET_HTM): Define macro.
	(TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
	* config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
	(UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
	(UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum
	values.
	(TBEGIN_MASK, TBEGINC_MASK): New constants.
	("*cc_to_int"): Move up.
	("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
	constants other than 0.
	("*ccraw_to_int"): New insn and splitter definition.
	("tbegin", "tbegin_nofloat", "tbegin_retry")
	("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
	("tx_assist"): New expander.
	("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
	("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
	* config/s390/s390.opt: Add -mhtm option.
	* config/s390/s390-protos.h (s390_emit_jump): Add return type.
	* config/s390/htmxlintrin.h: New file.
	* config/s390/htmintrin.h: New file.
	* config/s390/s390intrin.h: New file.
	* doc/extend.texi: Document htm builtins.
	* config.gcc: Add the new header files to extra_headers.

2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gcc.target/s390/htm-1.c: New file.
	* gcc.target/s390/htm-nofloat-1.c: New file.
	* gcc.target/s390/htm-xl-intrin-1.c: New file.

2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/target.h: Include htmintrin.h.
	(_HTM_ITM_RETRIES): New macro definition.
	(htm_available, htm_init, htm_begin, htm_begin_success)
	(htm_commit, htm_abort, htm_abort_should_retry): New functions.

From-SVN: r200454
2013-06-27 07:44:11 +00:00
..
config s390.c: Rename UNSPEC_CCU_TO_INT to UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to... 2013-06-27 07:44:11 +00:00
testsuite libitm.exp: Reorder lib loads into dependency order. 2013-06-20 16:44:23 +00:00
ChangeLog s390.c: Rename UNSPEC_CCU_TO_INT to UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to... 2013-06-27 07:44:11 +00:00
Makefile.am libitm: Add multi-lock, write-through TM method. 2012-02-14 13:14:27 +00:00
Makefile.in re PR other/43620 ([4.3 Release Blocker] Uploading to gnu.org will fail due to automake security issue) 2012-09-20 16:41:17 +02:00
aatree.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
aatree.h Update copyright in libitm. 2013-02-03 17:46:11 +00:00
acinclude.m4 Detect assembler support for RTM 2012-10-30 21:46:20 -07:00
aclocal.m4 weakref.m4: New file. 2011-11-22 14:49:11 +00:00
alloc.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
alloc_c.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
alloc_cpp.cc re PR libitm/55693 (libitm.c++/eh-1.C execution test fails on darwin from r193271) 2013-02-11 23:30:10 +00:00
barrier.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
beginend.cc libitm: Fix handling of reentrancy in the HTM fastpath. 2013-06-20 16:40:38 +00:00
clearcap.map Clear hardware capabilities on libitm.so with Sun ld 2012-01-23 13:03:25 +00:00
clone.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
common.h Update copyright in libitm. 2013-02-03 17:46:11 +00:00
config.h.in Detect assembler support for RTM 2012-10-30 21:46:20 -07:00
configure configure: Regenerate. 2012-11-05 00:17:34 +01:00
configure.ac Update copyright in libitm. 2013-02-03 17:46:11 +00:00
configure.tgt sjlj.S: New file. 2013-04-23 11:33:50 +00:00
containers.h Update copyright in libitm. 2013-02-03 17:46:11 +00:00
dispatch.h Update copyright in libitm. 2013-02-03 17:46:11 +00:00
eh_cpp.cc re PR libitm/55693 (libitm.c++/eh-1.C execution test fails on darwin from r193271) 2013-02-11 23:30:10 +00:00
libitm.h Update copyright in libitm. 2013-02-03 17:46:11 +00:00
libitm.map Remove _ITM_getThreadnum 2012-01-23 13:05:00 +00:00
libitm.spec.in Merge from transactional-memory branch. 2011-11-08 11:13:41 +00:00
libitm.texi Update copyright in libitm. 2013-02-03 17:46:11 +00:00
libitm_i.h Update copyright in libitm. 2013-02-03 17:46:11 +00:00
local.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
local_atomic re PR bootstrap/56714 (Bootstrap failure libitm/local_atomic:1580:3: error: always_inline function might not be inlinable) 2013-06-05 16:48:14 +00:00
local_type_traits Update copyright in libitm. 2013-02-03 17:46:11 +00:00
method-gl.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
method-ml.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
method-serial.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
query.cc libitm: Handle HTM fastpath in status query functions. 2013-06-20 16:40:54 +00:00
retry.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
stmlock.h Update copyright in libitm. 2013-02-03 17:46:11 +00:00
useraction.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00
util.cc Update copyright in libitm. 2013-02-03 17:46:11 +00:00