On Wed, Mar 19, 2014 at 3:25 PM, Bill Schmidt <wschm...@linux.vnet.ibm.com> wrote: > Hi, > > This patch (diff-p8-htm) backports hardware transactional memory > support. Copying Jakub and Richard for the libitm support. > > Thanks, > Bill > > > [gcc] > > 2014-03-29 Bill Schmidt <wschm...@linux.vnet.ibm.com> > > Backport from mainline > 2013-12-03 Peter Bergner <berg...@vnet.ibm.com> > > * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix > typo in macro name. > (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise. > > Backport from mainline r205233. > 2013-11-21 Peter Bergner <berg...@vnet.ibm.com> > > * doc/extend.texi: Document htm builtins. > > Backport from mainline > 2013-07-17 Iain Sandoe <i...@codesourcery.com> > > * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers. > > Backport from mainline > 2013-07-16 Peter Bergner <berg...@vnet.ibm.com> > > * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not > enable extra ISA flags with TARGET_HTM. > > 2013-07-16 Jakub Jelinek <ja...@redhat.com> > Peter Bergner <berg...@vnet.ibm.com> > > * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM > registers in the comment. > (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers. > (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS > rather than FIRST_PSEUDO_REGISTERS. > > * 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. > > [libitm] > > 2014-03-29 Bill Schmidt <wschm...@linux.vnet.ibm.com> > > Backport from mainline > * acinclude.m4 (LIBITM_CHECK_AS_HTM): New. > * 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/testsuite] > > 2014-03-29 Bill Schmidt <wschm...@linux.vnet.ibm.com> > > Backport from mainline > * 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.
The PowerPC bits are okay. Thanks, David