gcc/libitm
Peter Bergner 0258b6e466 acinclude.m4 (LIBITM_CHECK_AS_HTM): New.
libitm/
        * acinclude.m4 (LIBITM_CHECK_AS_HTM): New.
        * configure.ac: Use it.
	(AC_CHECK_HEADERS): Check for sys/auxv.h.
	(AC_CHECK_FUNCS): Check for getauxval.
        * config.h.in, configure: Rebuild.
	* configure.tgt (target_cpu): Add -mhtm to XCFLAGS.
	* config/powerpc/target.h: Include sys/auxv.h and htmintrin.h.
	(USE_HTM_FASTPATH): Define.
	(_TBEGIN_STARTED, _TBEGIN_INDETERMINATE, _TBEGIN_PERSISTENT,
	_HTM_RETRIES) New macros.
	(htm_abort, htm_abort_should_retry, htm_available, htm_begin, htm_init,
	htm_begin_success, htm_commit, htm_transaction_active): New functions.

gcc/
	* config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
	* config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
	* config/rs6000/rs6000.opt: Add -mhtm option.
	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
	(ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	__HTM__ if the HTM instructions are available.
	* config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
	htm_spr_reg_operand): New define_predicates.
	* config/rs6000/rs6000.md (define_attr "type"): Add htm.
	(TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
	Include htm.md.
	* config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
	BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
	HTM builtin functions.
	* config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
	(rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
	(rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
	(rs6000_builtin_mask_calculate): Likewise.
	(rs6000_option_override_internal): Likewise.
	(bdesc_htm): Add new HTM builtin support.
	(htm_spr_num): New function.
	(htm_spr_regno): Likewise.
	(rs6000_htm_spr_icode): Likewise.
	(htm_expand_builtin): Likewise.
	(htm_init_builtins): Likewise.
	(rs6000_expand_builtin): Add support for HTM builtin functions.
	(rs6000_init_builtins): Likewise.
	(rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm option.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
	(TARGET_HTM, MASK_HTM): Define macros.
	(FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
	(FIXED_REGISTERS): Likewise.
	(CALL_USED_REGISTERS): Likewise.
	(CALL_REALLY_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(enum reg_class): Likewise.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(REGISTER_NAMES): Likewise.
	(ADDITIONAL_REGISTER_NAMES): Likewise.
	(RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
	RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
	(RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
	* config/rs6000/htm.md: New file.
	* config/rs6000/htmintrin.h: New file.
	* config/rs6000/htmxlintrin.h: New file.

gcc/testsuite/
        * lib/target-supports.exp (check_effective_target_powerpc_htm_ok): New
        function to test if HTM is available.
	* gcc.target/powerpc/htm-xl-intrin-1.c: New test.
	* gcc.target/powerpc/htm-builtin-1.c: New test.

From-SVN: r200960
2013-07-15 12:23:49 -05:00
..
config acinclude.m4 (LIBITM_CHECK_AS_HTM): New. 2013-07-15 12:23:49 -05:00
testsuite libitm.exp: Reorder lib loads into dependency order. 2013-06-20 16:44:23 +00:00
ChangeLog acinclude.m4 (LIBITM_CHECK_AS_HTM): New. 2013-07-15 12:23:49 -05: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 acinclude.m4 (LIBITM_CHECK_AS_HTM): New. 2013-07-15 12:23:49 -05: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 acinclude.m4 (LIBITM_CHECK_AS_HTM): New. 2013-07-15 12:23:49 -05:00
configure acinclude.m4 (LIBITM_CHECK_AS_HTM): New. 2013-07-15 12:23:49 -05:00
configure.ac acinclude.m4 (LIBITM_CHECK_AS_HTM): New. 2013-07-15 12:23:49 -05:00
configure.tgt acinclude.m4 (LIBITM_CHECK_AS_HTM): New. 2013-07-15 12:23:49 -05: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
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