Hi, this patch adds new intrinsics for fxsave, fxsave64, xsave, xsave64, xsaveopt and xsaveopt64 instructions
Bootstrapped on x86-64 Is it ok for trunk? Changelog entry: 2012-10-16 Alexander Ivchenko <alexander.ivche...@intel.com> * gcc/common/config/i386/i386-common.c (OPTION_MASK_ISA_FXSAVE_SET): New. (OPTION_MASK_ISA_XSAVE_SET): Likewise. (ix86_handle_option): Handle mfxsave and mxsave options. * gcc/config.gcc (i[34567]86-*-*): Add fxsaveintrin.h and xsaveintrin.h. (x86_64-*-*): Likewise. * config/i386/xsaveintrin.h: New header. * config/i386/fxsaveintrin.h: Likewise. * gcc/config/i386/driver-i386.c (host_detect_local_cpu): Detect FXSAVE/XSAVE support. * gcc/config/i386/i386-builtin-types.def (VOID_FTYPE_PVOID_INT64): New function type. * gcc/config/i386/i386-c.c: Define __FXSAVE__ and __XSAVE__ if needed. * gcc/config/i386/i386.c (ix86_target_string): Define -mfxsave and -mxsave options. (PTA_FXSAVE): New. (PTA_XSAVE): Likewise. (ix86_option_override_internal): Handle new option. (ix86_valid_target_attribute_inner_p): Add OPT_mfxsave, OPT_mxsave. (ix86_builtins): Add IX86_BUILTIN_FXSAVE32, IX86_BUILTIN_FXSAVE64, IX86_BUILTIN_XSAVE32, IX86_BUILTIN_XSAVE64, IX86_BUILTIN_XSAVEOPT32, IX86_BUILTIN_XSAVEOPT64. (ix86_expand_builtin): Handle these built-ins. * gcc/config/i386/i386.h (TARGET_FXSAVE): New. (TARGET_XSAVE): Likewise. * gcc/config/i386/i386.md (fxsave32): New. (fxsave64): Likewise. (xsave32): Likewise. (xsave64): Likewise. (xsaveopt32): Likewise. (xsaveopt64): Likewise. * gcc/config/i386/i386.opt (mfxsave): New. (mxsave): Likewise. * gcc/config/i386/x86intrin.h: Include xsaveintrin.h, fxsaveintrin.h. testsuite/Changelog entry: 2012-10-16 Alexander Ivchenko <alexander.ivche...@intel.com> * gcc.target/i386/fxsave-1.c: New. * gcc.target/i386/fxsave64-1.c: Ditto. * gcc.target/i386/xsave-1.c: Ditto. * gcc.target/i386/xsave64-1.c: Ditto. * gcc.target/i386/xsaveopt-1.c: Ditto. * gcc.target/i386/xsaveopt64-1.c: Ditto.
fxsave_xsave_intrin.patch
Description: Binary data