diff options
author | Sebastian Peryt <sebastian.peryt@intel.com> | 2018-05-11 15:17:42 +0200 |
---|---|---|
committer | Sebastian Peryt <speryt@gcc.gnu.org> | 2018-05-11 15:17:42 +0200 |
commit | 55f31ed10fd38c50560114c47698ed0aa2b302c8 (patch) | |
tree | 5be5eee255e124ed77f310e674dc92f07c1bc408 /gcc/config.gcc | |
parent | c40a8be80895679e8100e6ed32274bbed57d6543 (diff) | |
download | gcc-55f31ed10fd38c50560114c47698ed0aa2b302c8.zip gcc-55f31ed10fd38c50560114c47698ed0aa2b302c8.tar.gz gcc-55f31ed10fd38c50560114c47698ed0aa2b302c8.tar.bz2 |
i386-common.c (OPTION_MASK_ISA_WAITPKG_SET, [...]): New defines.
2018-05-11 Sebastian Peryt <sebastian.peryt@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): Add -mwaitpkg.
(ix86_option_override_internal): Add PTA_WAITPKG.
(ix86_valid_target_attribute_inner_p): Add -mwaitpkg.
(enum ix86_builtins): Add 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.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR,
UNSPECV_TPAUSE): New.
(umwait, umwait_rex64, umonitor_<mode>, tpause, tpause_rex64): New.
* config/i386/i386.opt: Add -mwaitpkg.
* config/i386/waitpkgintrin.h: New file.
* config/i386/x86intrin.h: New header.
* doc/invoke.texi: Add -mwaitpkg.
gcc/testsuite/
* gcc.target/i386/tpause-1.c: New test.
* gcc.target/i386/umonitor-1.c: New test.
From-SVN: r260161
Diffstat (limited to 'gcc/config.gcc')
-rw-r--r-- | gcc/config.gcc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index 96bdd5c..9c4a849 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -384,7 +384,8 @@ i[34567]86-*-*) avx512vbmi2vlintrin.h avx512vnniintrin.h avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h avx512vpopcntdqvlintrin.h avx512bitalgintrin.h - pconfigintrin.h wbnoinvdintrin.h movdirintrin.h" + pconfigintrin.h wbnoinvdintrin.h movdirintrin.h + waitpkgintrin.h" ;; x86_64-*-*) cpu_type=i386 @@ -413,7 +414,8 @@ x86_64-*-*) avx512vbmi2vlintrin.h avx512vnniintrin.h avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h avx512vpopcntdqvlintrin.h avx512bitalgintrin.h - pconfigintrin.h wbnoinvdintrin.h movdirintrin.h" + pconfigintrin.h wbnoinvdintrin.h movdirintrin.h + waitpkgintrin.h" ;; ia64-*-*) extra_headers=ia64intrin.h |