diff options
author | Venkataramanan Kumar <venkataramanan.kumar@amd.com> | 2015-06-12 10:02:25 +0000 |
---|---|---|
committer | Venkataramanan Kumar <vekumar@gcc.gnu.org> | 2015-06-12 10:02:25 +0000 |
commit | 500a08b263568b14d0f3144e470e8d597e1aaf7a (patch) | |
tree | 0a9a339e76852c5d970db49f392de41b5e33ffdf /gcc/doc | |
parent | 1c6682fa9f927829bbe635f7b1d52152dea1cf51 (diff) | |
download | gcc-500a08b263568b14d0f3144e470e8d597e1aaf7a.zip gcc-500a08b263568b14d0f3144e470e8d597e1aaf7a.tar.gz gcc-500a08b263568b14d0f3144e470e8d597e1aaf7a.tar.bz2 |
gcc/
2015-06-12 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
* common/config/i386/i386-common.c
(OPTION_MASK_ISA_MWAITX_SET): New.
(ix86_handle_option): Handle mwaitx.
* config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
(x86_64-*-*): Likewise.
* config/i386/mwaitxintrin.h: New header.
* config/i386/cpuid.h (bit_MWAITX): Define.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect
MWAITX support.
* config/i386/i386.opt (mwaitx): New.
* config/i386/i386-builtin-types.def
(VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
* config/i386/i386-c.c: Define __MWAITX__ if needed.
* config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
(PTA_MWAITX): New.
(ix86_option_override_internal): Handle new option.
(processor_alias_table): Added PTA_MWAITX.
(ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
(ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
(ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
IX86_BUILTIN_MONITORX built-ins.
* config/i386/i386.h (TARGET_MWAITX): New.
* config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
UNSPEC_MONITORX.
(mwaitx): New pattern.
(monitorx_<mode>): New pattern.
* config/i386/x86intrin.h: Include mwaitxintrin.h.
* doc/extend.texi: Document monitorx and mwaitx builtins.
* doc/invoke.texi: Document -mmwaitx option.
gcc/testsuite
2015-06-12 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
* gcc.target/i386/monitorx.c: New.
* gcc.target/i386/sse-12.c: Add -mmwaitx.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* g++.dg/other/i386-2.C: Ditto.
* g++.dg/other/i386-3.C: Ditto.
From-SVN: r224414
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/extend.texi | 7 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 9ad2b68..8258000 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -17919,6 +17919,13 @@ void __builtin_ia32_xabort (status) int __builtin_ia32_xtest () @end smallexample +The following built-in functions are available when @option{-mmwaitx} is used. +All of them generate the machine instruction that is part of the name. +@smallexample +void __builtin_ia32_monitorx (void *, unsigned int, unsigned int) +void __builtin_ia32_mwaitx (unsigned int, unsigned int, unsigned int) +@end smallexample + @node x86 transactional memory intrinsics @subsection x86 Transactional Memory Intrinsics diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 5903c75..431ca57 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1085,7 +1085,7 @@ See RS/6000 and PowerPC Options. -maes -mpclmul -mfsgsbase -mrdrnd -mf16c -mfma -mprefetchwt1 @gol -mclflushopt -mxsavec -mxsaves @gol -msse4a -m3dnow -mpopcnt -mabm -mbmi -mtbm -mfma4 -mxop -mlzcnt @gol --mbmi2 -mfxsr -mxsave -mxsaveopt -mrtm -mlwp -mmpx -mthreads @gol +-mbmi2 -mfxsr -mxsave -mxsaveopt -mrtm -mlwp -mmpx -mmwaitx -mthreads @gol -mno-align-stringops -minline-all-stringops @gol -minline-stringops-dynamically -mstringop-strategy=@var{alg} @gol -mmemcpy-strategy=@var{strategy} -mmemset-strategy=@var{strategy} @gol @@ -22876,10 +22876,13 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}. @need 200 @itemx -mmpx @opindex mmpx +@need 200 +@itemx -mmwaitx +@opindex mmwaitx These switches enable the use of instructions in the MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, AVX, AVX2, AVX512F, AVX512PF, AVX512ER, AVX512CD, SHA, AES, PCLMUL, FSGSBASE, RDRND, F16C, FMA, SSE4A, FMA4, XOP, LWP, ABM, -BMI, BMI2, FXSR, XSAVE, XSAVEOPT, LZCNT, RTM, MPX or 3DNow!@: +BMI, BMI2, FXSR, XSAVE, XSAVEOPT, LZCNT, RTM, MPX, MWAITX or 3DNow!@: extended instruction sets. Each has a corresponding @option{-mno-} option to disable use of these instructions. |