mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 07:14:09 +08:00
0258b6e466
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
181 lines
4.8 KiB
C
181 lines
4.8 KiB
C
/* config.h.in. Generated from configure.ac by autoheader. */
|
|
|
|
/* Define if building universal (internal helper macro) */
|
|
#undef AC_APPLE_UNIVERSAL_BUILD
|
|
|
|
/* Define to 1 if the target supports 64-bit __sync_*_compare_and_swap */
|
|
#undef HAVE_64BIT_SYNC_BUILTINS
|
|
|
|
/* Define to 1 if the assembler supports AVX. */
|
|
#undef HAVE_AS_AVX
|
|
|
|
/* Define if your assembler supports .cfi_* directives. */
|
|
#undef HAVE_AS_CFI_PSEUDO_OP
|
|
|
|
/* Define to 1 if the assembler supports HTM. */
|
|
#undef HAVE_AS_HTM
|
|
|
|
/* Define to 1 if the assembler supports RTM. */
|
|
#undef HAVE_AS_RTM
|
|
|
|
/* Define to 1 if the target supports __attribute__((alias(...))). */
|
|
#undef HAVE_ATTRIBUTE_ALIAS
|
|
|
|
/* Define to 1 if the target supports __attribute__((dllexport)). */
|
|
#undef HAVE_ATTRIBUTE_DLLEXPORT
|
|
|
|
/* Define to 1 if the target supports __attribute__((visibility(...))). */
|
|
#undef HAVE_ATTRIBUTE_VISIBILITY
|
|
|
|
/* Define if the POSIX Semaphores do not work on your system. */
|
|
#undef HAVE_BROKEN_POSIX_SEMAPHORES
|
|
|
|
/* Define to 1 if the target assembler supports thread-local storage. */
|
|
#undef HAVE_CC_TLS
|
|
|
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
#undef HAVE_DLFCN_H
|
|
|
|
/* Define to 1 if target has a weakref that works like the ELF one. */
|
|
#undef HAVE_ELF_STYLE_WEAKREF
|
|
|
|
/* Define to 1 if you have the `getauxval' function. */
|
|
#undef HAVE_GETAUXVAL
|
|
|
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
#undef HAVE_INTTYPES_H
|
|
|
|
/* Define to 1 if you have the <malloc.h> header file. */
|
|
#undef HAVE_MALLOC_H
|
|
|
|
/* Define to 1 if you have the `memalign' function. */
|
|
#undef HAVE_MEMALIGN
|
|
|
|
/* Define to 1 if you have the <memory.h> header file. */
|
|
#undef HAVE_MEMORY_H
|
|
|
|
/* Define if mmap with MAP_ANON(YMOUS) works. */
|
|
#undef HAVE_MMAP_ANON
|
|
|
|
/* Define if mmap of /dev/zero works. */
|
|
#undef HAVE_MMAP_DEV_ZERO
|
|
|
|
/* Define if read-only mmap of a plain file works. */
|
|
#undef HAVE_MMAP_FILE
|
|
|
|
/* Define to 1 if you have the `posix_memalign' function. */
|
|
#undef HAVE_POSIX_MEMALIGN
|
|
|
|
/* Define to 1 if you have the <semaphore.h> header file. */
|
|
#undef HAVE_SEMAPHORE_H
|
|
|
|
/* Define to 1 if you have the <stdint.h> header file. */
|
|
#undef HAVE_STDINT_H
|
|
|
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
#undef HAVE_STDLIB_H
|
|
|
|
/* Define to 1 if you have the <strings.h> header file. */
|
|
#undef HAVE_STRINGS_H
|
|
|
|
/* Define to 1 if you have the <string.h> header file. */
|
|
#undef HAVE_STRING_H
|
|
|
|
/* Define to 1 if you have the `strtoull' function. */
|
|
#undef HAVE_STRTOULL
|
|
|
|
/* Define to 1 if the target supports __sync_*_compare_and_swap */
|
|
#undef HAVE_SYNC_BUILTINS
|
|
|
|
/* Define to 1 if you have the <sys/auxv.h> header file. */
|
|
#undef HAVE_SYS_AUXV_H
|
|
|
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
#undef HAVE_SYS_STAT_H
|
|
|
|
/* Define to 1 if you have the <sys/time.h> header file. */
|
|
#undef HAVE_SYS_TIME_H
|
|
|
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
#undef HAVE_SYS_TYPES_H
|
|
|
|
/* Define to 1 if the target supports thread-local storage. */
|
|
#undef HAVE_TLS
|
|
|
|
/* Define to 1 if you have the <unistd.h> header file. */
|
|
#undef HAVE_UNISTD_H
|
|
|
|
/* Define to 1 if GNU symbol versioning is used for libitm. */
|
|
#undef LIBITM_GNU_SYMBOL_VERSIONING
|
|
|
|
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
|
*/
|
|
#undef LT_OBJDIR
|
|
|
|
/* Define to the letter to which size_t is mangled. */
|
|
#undef MANGLE_SIZE_T
|
|
|
|
/* Name of package */
|
|
#undef PACKAGE
|
|
|
|
/* Define to the address where bug reports for this package should be sent. */
|
|
#undef PACKAGE_BUGREPORT
|
|
|
|
/* Define to the full name of this package. */
|
|
#undef PACKAGE_NAME
|
|
|
|
/* Define to the full name and version of this package. */
|
|
#undef PACKAGE_STRING
|
|
|
|
/* Define to the one symbol short name of this package. */
|
|
#undef PACKAGE_TARNAME
|
|
|
|
/* Define to the home page for this package. */
|
|
#undef PACKAGE_URL
|
|
|
|
/* Define to the version of this package. */
|
|
#undef PACKAGE_VERSION
|
|
|
|
/* The size of `char', as computed by sizeof. */
|
|
#undef SIZEOF_CHAR
|
|
|
|
/* The size of `int', as computed by sizeof. */
|
|
#undef SIZEOF_INT
|
|
|
|
/* The size of `long', as computed by sizeof. */
|
|
#undef SIZEOF_LONG
|
|
|
|
/* The size of `short', as computed by sizeof. */
|
|
#undef SIZEOF_SHORT
|
|
|
|
/* The size of `void *', as computed by sizeof. */
|
|
#undef SIZEOF_VOID_P
|
|
|
|
/* Define to 1 if you have the ANSI C header files. */
|
|
#undef STDC_HEADERS
|
|
|
|
/* Define if you can safely include both <string.h> and <strings.h>. */
|
|
#undef STRING_WITH_STRINGS
|
|
|
|
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
|
#undef TIME_WITH_SYS_TIME
|
|
|
|
/* Version number of package */
|
|
#undef VERSION
|
|
|
|
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
|
significant byte first (like Motorola and SPARC, unlike Intel). */
|
|
#if defined AC_APPLE_UNIVERSAL_BUILD
|
|
# if defined __BIG_ENDIAN__
|
|
# define WORDS_BIGENDIAN 1
|
|
# endif
|
|
#else
|
|
# ifndef WORDS_BIGENDIAN
|
|
# undef WORDS_BIGENDIAN
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef WORDS_BIGENDIAN
|
|
#define WORDS_BIGENDIAN 0
|
|
#endif
|