Commit Graph

13 Commits

Author SHA1 Message Date
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
Richard Sandiford
75f9527c9b Update copyright in libitm.
From-SVN: r195697
2013-02-03 17:46:11 +00:00
Richard Henderson
07d3b5c8c0 Detect assembler support for RTM
* acinclude.m4 (LIBITM_CHECK_AS_RTM): New.
	* configure.ac: Use it.
	* config.h.in, configure: Rebuild.
	* testsuite/Makefile.in: Rebuild.

From-SVN: r193017
2012-10-30 21:46:20 -07:00
Jakub Jelinek
c0758df921 re PR other/43620 ([4.3 Release Blocker] Uploading to gnu.org will fail due to automake security issue)
PR other/43620
libatomic/
	* configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
libitm/
	* configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

From-SVN: r191565
2012-09-20 16:41:17 +02:00
Eric Botcazou
255a9a1bb5 gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
gcc/
	* gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
	(GTM_SELF_SPECS): Define if not already defined.
	(driver_self_specs): Add GTM_SELF_SPECS.
	* config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
	(GTM_SELF_SPECS): Define.
	* config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
	* config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
libitm/
	* configure.ac (link_itm): Fix comment.
	* configure: Regenerate.
	* testsuite/lib/libitm.exp: Do not pass -litm for the link.

From-SVN: r184174
2012-02-13 21:46:38 +00:00
Rainer Orth
9ce91011bf Clear hardware capabilities on libitm.so with Sun ld
* clearcap.map: New file.
	* acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): New test.
	* configure.ac: Call it.
	Clear HWCAP_LDFLAGS if defaulting to -mavx.
	* Makefile.am (AM_LDFLAGS): Add $(HWCAP_LDFLAGS)
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

From-SVN: r183430
2012-01-23 13:03:25 +00:00
Richard Henderson
aebac0ca06 arm-linux: Add libitm support.
* config/arm/hwcap.h, config/arm/hwcap.cc: New files.
	* config/arm/sjlj.S, config/arm/target.h: New files.
	* config/generic/asmcfi.h (cfi_adjust_cfa_offset): New.
	(cfi_rel_offset): New.
	* config/linux/futex_bits.h: New file.
	* config/linux/futex.cc: Include futex_bits.h here...
	* config/linux/futex.h: ... not here.
	* Makefile.am (libitm_la_SOURCES) <ARCH_ARM>: Add hwcap.cc.
	* configure.ac (ARCH_AM): New conditional.
	* Makefile.in, configure: Rebuild.
	* configure.tgt: Handle ARM.

From-SVN: r182355
2011-12-14 19:24:05 -08:00
Iain Sandoe
8cf36bb3b8 weakref.m4: New file.
config:

	* weakref.m4: New file.

libitm:

	* configure.ac: Use GCC_CHECK_ELF_STYLE_WEAKREF.
	* alloc_cpp.cc: Generate dummy functions if we don't
	HAVE_ELF_STYLE_WEAKREF.
	* eh_cpp.cc: Likewise.
	* configure: Regenerate.
	* aclocal.m4:  Likewise.
	* config.h.in: Likewise.
	* Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

From-SVN: r181618
2011-11-22 14:49:11 +00:00
Richard Henderson
d4b179020b libitm: Don't add -mavx if the assembler doesn't support avx.
* config/x86/x86_avx.cc: Remove #undef __AVX__ hack.  Tidy comments.
        * Makefile.am (x86_avx.lo): Only add -mavx if ARCH_X86_AVX.
        * configure.ac (ARCH_X86_AVX): New conditional.
        * Makefile.in, configure: Rebuild.

From-SVN: r181261
2011-11-10 09:09:04 -08:00
Richard Henderson
430616e7a7 libitm: Work around assembler missing AVX insns.
From-SVN: r181246
2011-11-09 16:29:38 -08:00
Richard Henderson
4bdd090f8e libitm: Configure for gas cfi pseudo ops.
* asmcfi.m4: New file.

	* configure.ac (GCC_AS_CFI_PSEUDO_OP): Test it.
	* configure, aclocal.m4, config.h.in: Rebuild.
	* config/generic/asmcfi.h: New file.
	* config/x86/sjlj.S: Use it.

From-SVN: r181224
2011-11-09 10:09:53 -08:00
Richard Henderson
01f3428caf Check for libitm support at top-level.
From-SVN: r181168
2011-11-08 08:06:25 -08:00
Aldy Hernandez
0a35513e4e Merge from transactional-memory branch.
From-SVN: r181154
2011-11-08 11:13:41 +00:00