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.

Attachment: 0001-PTWRITE-intrinsics.patch
Description: 0001-PTWRITE-intrinsics.patch

Reply via email to