Hi, This patch adds support for WAITPKG instructions.
Is it ok for trunk and after few day for backport to GCC-8? 2018-05-08 Sebastian Peryt <sebastian.pe...@intel.com> gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET, OPTION_MASK_ISA_WAITPKG_UNSET): New defines. (ix86_handle_option): Handle -mwaitpkg. * config.gcc: New header. * config/i386/cpuid.h (bit_WAITPKG): New bit. * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg. * config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New function type. * config/i386/i386-c.c (ix86_target_macros_internal): Handle OPTION_MASK_ISA_WAITPKG * config/i386/i386.c (ix86_target_string): Added -mwaitpkg. (ix86_option_override_internal): Added PTA_WAITPKG. (ix86_valid_target_attribute_inner_p): Added -mwaitpkg. (enum ix86_builtins): Added IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE. (ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor, __builtin_ia32_umwait and __builtin_ia32_tpause. (ix86_expand_builtin):Expand IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE. * config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New. * config/i386/i386.opt: Added -mwaitpkg. * config/i386/sse.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR, UNSPECV_TPAUSE): New. (umwait, umonitor_<mode>, tpause): New. * config/i386/waitpkgintrin.h: New file. * config/i386/x86intrin.h: New header. * doc/invoke.texi: Added -mwaitpkg. 2018-05-08 Sebastian Peryt <sebastian.pe...@intel.com> gcc/testsuite/ * gcc.target/i386/tpause-1.c: New test. * gcc.target/i386/umonitor-1.c: New test. Thanks, Sebastian
0001-WAITPKG.patch
Description: 0001-WAITPKG.patch