I have rebased this patch to the latest trunk and addressed comments. Also, there was a test in changelog, but not in the patch itself - this has been added.
Is it ok for trunk and backport to GCC-8 after few days? gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_PTWRITE_SET, OPTION_MASK_ISA_PTWRITE_UNSET): New. (ix86_handle_option): Handle OPT_mptwrite. * config/i386/cpuid.h (bit_PTWRITE): Add. * config/i386/driver-i386.c (host_detect_local_cpu): Detect PTWRITE CPUID. * config/i386/i386-builtin.def (PTWRITE): Add PTWRITE. * config/i386/i386-c.c (ix86_target_macros_internal): Support __PTWRITE__. * config/i386/i386.c (ix86_target_string): Add -mptwrite. (ix86_valid_target_attribute_inner_p): Support ptwrite. (ix86_init_mmx_sse_builtins): Add edges detection for ptwrites generated by vartrace. * config/i386/i386.h (TARGET_PTWRITE): Add. (TARGET_PTWRITE_P): Add. * config/i386/i386.md: Add ptwrite. * config/i386/i386.opt: Add -mptwrite. * config/i386/immintrin.h (target): (_ptwrite64): Add. (_ptwrite32): Add. * doc/extend.texi: Document ptwrite builtins. * doc/invoke.texi: Document -mptwrite. gcc/testsuite/ * gcc.target/i386/ptwrite-1.c: New test. Sebastian > -----Original Message----- > From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches- > ow...@gcc.gnu.org] On Behalf Of Andi Kleen > Sent: Monday, February 12, 2018 3:53 AM > To: gcc-patches@gcc.gnu.org > Cc: Metzger, Markus T <markus.t.metz...@intel.com>; ubiz...@gmail.com; > Andi Kleen <a...@linux.intel.com> > Subject: [PATCH 1/3] Add PTWRITE builtins for x86 > > From: Andi Kleen <a...@linux.intel.com> > > Add builtins/intrinsics for PTWRITE. PTWRITE is a new instruction on Intel > Cherry > Trail that allows to write values into the Processor Trace log. > > This is fairly straight forward, except I had to add isa2 support for variable > number of operands. > > gcc/: > > 2018-02-10 Andi Kleen <a...@linux.intel.com> > > * common/config/i386/i386-common.c > (OPTION_MASK_ISA_PTWRITE_SET): > (OPTION_MASK_ISA_PTWRITE_UNSET): New. > (ix86_handle_option): Handle OPT_mptwrite. > * config/i386/cpuid.h (bit_PTWRITE): Add. > * config/i386/driver-i386.c (host_detect_local_cpu): Detect > PTWRITE CPUID. > * config/i386/i386-builtin.def (PTWRITE): Add PTWRITE. > * config/i386/i386-c.c (ix86_target_macros_internal): > Support __PTWRITE__. > * config/i386/i386.c (ix86_target_string): Add -mptwrite. > (ix86_valid_target_attribute_inner_p): Support ptwrite. > (BDESC_VERIFYS): Verify SPECIAL_ARGS2. > (ix86_init_mmx_sse_builtins): Handle special args2. > * config/i386/i386.h (TARGET_PTWRITE): Add. > (TARGET_PTWRITE_P): Add. > * config/i386/i386.md: Add ptwrite. > * config/i386/i386.opt: Add -mptwrite. > * config/i386/immintrin.h (target): > (_ptwrite_u64): Add. > (_ptwrite_u32): Add. > * doc/extend.texi: Document ptwrite builtins. > * doc/invoke.texi: Document -mptwrite. > > gcc/testsuite/: > > 2018-02-10 Andi Kleen <a...@linux.intel.com> > > * gcc.target/i386/ptwrite1.c: New test. > * gcc.target/i386/ptwrite2.c: New test.
0001-PTWRITE-intrinsics.patch
Description: 0001-PTWRITE-intrinsics.patch