1 ; Options for the IA-32 and AMD64 ports of the compiler.
3 ; Copyright (C) 2005-2022 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3. If not see
19 ; <http://www.gnu.org/licenses/>.
22 config/dummy/dummy-opts.h
24 ; Bit flags that specify the ISA we are compiling for.
26 HOST_WIDE_INT ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT
29 HOST_WIDE_INT ix86_isa_flags2 = 0
31 ; A mask of ix86_isa_flags that includes bit X if X was set or cleared
32 ; on the command line.
34 HOST_WIDE_INT ix86_isa_flags_explicit
37 HOST_WIDE_INT ix86_isa_flags2_explicit
39 ; Additional target flags
44 int recip_mask = RECIP_MASK_DEFAULT
47 int recip_mask_explicit
50 int x_recip_mask_explicit
52 ;; A copy of flag_excess_precision as a target variable that should
53 ;; force a different DECL_FUNCTION_SPECIFIC_TARGET upon
54 ;; flag_excess_precision changes.
56 enum excess_precision ix86_excess_precision = EXCESS_PRECISION_DEFAULT
58 ;; Similarly for flag_unsafe_math_optimizations.
60 bool ix86_unsafe_math_optimizations = false
64 unsigned char schedule
66 ;; True if processor has SSE prefetch instruction.
68 unsigned char prefetch_sse
72 unsigned char branch_cost
74 ;; which flags were passed by the user
76 HOST_WIDE_INT x_ix86_isa_flags2_explicit
78 ;; which flags were passed by the user
80 HOST_WIDE_INT x_ix86_isa_flags_explicit
84 enum cmodel ix86_cmodel = CM_32
88 enum calling_abi x_ix86_abi
92 enum asm_dialect x_ix86_asm_dialect
96 int x_ix86_branch_cost
98 ;; -mdump-tune-features=
100 int x_ix86_dump_tunes
104 int x_ix86_force_align_arg_pointer
108 int x_ix86_force_drap
110 ;; -mincoming-stack-boundary=
112 int ix86_incoming_stack_boundary_arg
116 enum pmode ix86_pmode = PMODE_SI
118 ;; -mpreferred-stack-boundary=
120 int ix86_preferred_stack_boundary_arg
124 const char *x_ix86_recip_name
130 ;; -mlarge-data-threshold=
132 int x_ix86_section_threshold
138 ;; -mstack-protector-guard=
140 enum stack_protector_guard x_ix86_stack_protector_guard
142 ;; -mstringop-strategy=
144 enum stringop_alg x_ix86_stringop_alg
148 enum tls_dialect x_ix86_tls_dialect
150 ;; -mmemcpy-strategy=
152 const char *x_ix86_tune_memcpy_strategy
154 ;; -mmemset-strategy=
156 const char *x_ix86_tune_memset_strategy
160 int x_ix86_tune_no_default
164 enum ix86_veclibabi ix86_veclibabi_type = ix86_veclibabi_type_none
168 Target RejectNegative Mask(128BIT_LONG_DOUBLE) Save
169 sizeof(long double) is 16.
172 Target Mask(80387) Save
176 Target RejectNegative InverseMask(128BIT_LONG_DOUBLE) Save
177 sizeof(long double) is 12.
180 Target RejectNegative Negative(mlong-double-64) InverseMask(LONG_DOUBLE_64) Save
181 Use 80-bit long double.
184 Target RejectNegative Negative(mlong-double-128) Mask(LONG_DOUBLE_64) InverseMask(LONG_DOUBLE_128) Save
185 Use 64-bit long double.
188 Target RejectNegative Negative(mlong-double-80) Mask(LONG_DOUBLE_128) InverseMask(LONG_DOUBLE_64) Save
189 Use 128-bit long double.
191 maccumulate-outgoing-args
192 Target Mask(ACCUMULATE_OUTGOING_ARGS) Save
193 Reserve space for outgoing arguments in the function prologue.
196 Target Mask(ALIGN_DOUBLE) Save
197 Align some doubles on dword boundary.
200 Target RejectNegative Joined UInteger
201 Function starts are aligned to this power of 2.
204 Target RejectNegative Joined UInteger
205 Jump targets are aligned to this power of 2.
208 Target RejectNegative Joined UInteger
209 Loop code aligned to this power of 2.
212 Target RejectNegative InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS) Save
213 Align destination of the string operations.
216 Target RejectNegative Joined Var(ix86_align_data_type) Enum(ix86_align_data) Init(ix86_align_data_type_compat)
217 Use the given data alignment.
220 Name(ix86_align_data) Type(enum ix86_align_data)
221 Known data alignment choices (for use with the -malign-data= option):
224 Enum(ix86_align_data) String(compat) Value(ix86_align_data_type_compat)
227 Enum(ix86_align_data) String(abi) Value(ix86_align_data_type_abi)
230 Enum(ix86_align_data) String(cacheline) Value(ix86_align_data_type_cacheline)
233 Target RejectNegative Joined Enum(asm_dialect) Var(ix86_asm_dialect) Init(ASM_ATT)
234 Use given assembler dialect.
237 Name(asm_dialect) Type(enum asm_dialect)
238 Known assembler dialects (for use with the -masm= option):
241 Enum(asm_dialect) String(intel) Value(ASM_INTEL)
244 Enum(asm_dialect) String(att) Value(ASM_ATT)
247 Target RejectNegative Joined UInteger Var(ix86_branch_cost) IntegerRange(0, 5)
248 Branches are this expensive (arbitrary units).
250 mlarge-data-threshold=
251 Target RejectNegative Joined UInteger Var(ix86_section_threshold) Init(DEFAULT_LARGE_SECTION_THRESHOLD)
252 -mlarge-data-threshold=<number> Data greater than given threshold will go into .ldata section in x86-64 medium model.
255 Target RejectNegative Joined Enum(cmodel) Var(ix86_cmodel) Init(CM_32)
256 Use given x86-64 code model.
259 Name(cmodel) Type(enum cmodel)
260 Known code models (for use with the -mcmodel= option):
263 Enum(cmodel) String(small) Value(CM_SMALL)
266 Enum(cmodel) String(medium) Value(CM_MEDIUM)
269 Enum(cmodel) String(large) Value(CM_LARGE)
272 Enum(cmodel) String(32) Value(CM_32)
275 Enum(cmodel) String(kernel) Value(CM_KERNEL)
278 Target RejectNegative Joined Enum(pmode) Var(ix86_pmode) Init(PMODE_SI)
279 Use given address mode.
282 Name(pmode) Type(enum pmode)
283 Known address mode (for use with the -maddress-mode= option):
286 Enum(pmode) String(short) Value(PMODE_SI)
289 Enum(pmode) String(long) Value(PMODE_DI)
292 Target RejectNegative InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387) Save
293 Generate sin, cos, sqrt for FPU.
296 Target Var(ix86_force_drap)
297 Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack.
300 Target Mask(FLOAT_RETURNS) Save
301 Return values of functions in FPU registers.
304 Target RejectNegative Joined Var(ix86_fpmath) Enum(fpmath_unit) Init(FPMATH_387) Save
305 Generate floating point mathematics using given instruction set.
308 Name(fpmath_unit) Type(enum fpmath_unit)
309 Valid arguments to -mfpmath=:
312 Enum(fpmath_unit) String(387) Value(FPMATH_387)
315 Enum(fpmath_unit) String(sse) Value(FPMATH_SSE)
318 Enum(fpmath_unit) String(387,sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
321 Enum(fpmath_unit) String(387+sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
324 Enum(fpmath_unit) String(sse,387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
327 Enum(fpmath_unit) String(sse+387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
330 Enum(fpmath_unit) String(both) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
333 Target RejectNegative Mask(80387) Save
337 Target Mask(IEEE_FP) Save
338 Use IEEE math for fp comparisons.
340 minline-all-stringops
341 Target Mask(INLINE_ALL_STRINGOPS) Save
342 Inline all known string operations.
344 minline-stringops-dynamically
345 Target Mask(INLINE_STRINGOPS_DYNAMICALLY) Save
346 Inline memset/memcpy string operations, but perform inline version only for small blocks.
349 Target Undocumented Alias(masm=, intel, att) Warn(%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead)
352 Target Mask(MS_BITFIELD_LAYOUT) Save
353 Use native (MS) bitfield layout.
356 Target RejectNegative Mask(NO_ALIGN_STRINGOPS) Undocumented Save
359 Target RejectNegative Mask(NO_FANCY_MATH_387) Undocumented Save
362 Target RejectNegative Mask(NO_PUSH_ARGS) Undocumented Save
365 Target RejectNegative Mask(NO_RED_ZONE) Undocumented Save
367 momit-leaf-frame-pointer
368 Target Mask(OMIT_LEAF_FRAME_POINTER) Save
369 Omit the frame pointer in leaf functions.
372 Target Mask(RELAX_CMPXCHG_LOOP) Save
373 Relax cmpxchg loop for atomic_fetch_{or,xor,and,nand} by adding load and cmp before cmpxchg, execute pause and loop back to load and compare if load value is not expected.
376 Target RejectNegative
377 Set 80387 floating-point precision to 32-bit.
380 Target RejectNegative
381 Set 80387 floating-point precision to 64-bit.
384 Target RejectNegative
385 Set 80387 floating-point precision to 80-bit.
387 mpreferred-stack-boundary=
388 Target RejectNegative Joined UInteger Var(ix86_preferred_stack_boundary_arg)
389 Attempt to keep stack aligned to this power of 2.
391 mincoming-stack-boundary=
392 Target RejectNegative Joined UInteger Var(ix86_incoming_stack_boundary_arg)
393 Assume incoming stack aligned to this power of 2.
396 Target InverseMask(NO_PUSH_ARGS, PUSH_ARGS) Save
397 Use push instructions to save outgoing arguments.
400 Target RejectNegative InverseMask(NO_RED_ZONE, RED_ZONE) Save
401 Use red-zone in the x86-64 code.
404 Target RejectNegative Joined UInteger Var(ix86_regparm)
405 Number of registers used to pass integer arguments.
408 Target Mask(RTD) Save
409 Alternate calling convention.
412 Target InverseMask(80387) Save
413 Do not use hardware fp.
416 Target RejectNegative Mask(SSEREGPARM) Save
417 Use SSE register passing conventions for SF and DF mode.
420 Target Var(ix86_force_align_arg_pointer)
421 Realign stack in prologue.
424 Target Mask(STACK_PROBE) Save
425 Enable stack probing.
428 Target RejectNegative Joined Var(ix86_tune_memcpy_strategy)
429 Specify memcpy expansion strategy when expected size is known.
432 Target RejectNegative Joined Var(ix86_tune_memset_strategy)
433 Specify memset expansion strategy when expected size is known.
436 Name(stringop_alg) Type(enum stringop_alg)
437 Valid arguments to -mstringop-strategy=:
440 Target RejectNegative Joined Var(ix86_tls_dialect) Enum(tls_dialect) Init(TLS_DIALECT_GNU)
441 Use given thread-local storage dialect.
444 Name(tls_dialect) Type(enum tls_dialect)
445 Known TLS dialects (for use with the -mtls-dialect= option):
448 Enum(tls_dialect) String(gnu) Value(TLS_DIALECT_GNU)
451 Enum(tls_dialect) String(gnu2) Value(TLS_DIALECT_GNU2)
454 Target Mask(TLS_DIRECT_SEG_REFS)
455 Use direct references against %gs when accessing tls data.
458 Target RejectNegative Var(ix86_tune_no_default)
459 Clear all tune features.
462 Target RejectNegative Var(ix86_dump_tunes)
466 Generate code that conforms to Intel MCU psABI.
469 Target RejectNegative Joined Var(ix86_abi) Enum(calling_abi) Init(SYSV_ABI)
470 Generate code that conforms to the given ABI.
473 Name(calling_abi) Type(enum calling_abi)
474 Known ABIs (for use with the -mabi= option):
477 Enum(calling_abi) String(sysv) Value(SYSV_ABI)
480 Enum(calling_abi) String(ms) Value(MS_ABI)
482 mcall-ms2sysv-xlogues
483 Target Mask(CALL_MS2SYSV_XLOGUES) Save
484 Use libgcc stubs to save and restore registers clobbered by 64-bit Microsoft to System V ABI calls.
487 Target RejectNegative Joined Var(ix86_veclibabi_type) Enum(ix86_veclibabi) Init(ix86_veclibabi_type_none)
488 Vector library ABI to use.
491 Name(ix86_veclibabi) Type(enum ix86_veclibabi)
492 Known vectorization library ABIs (for use with the -mveclibabi= option):
495 Enum(ix86_veclibabi) String(svml) Value(ix86_veclibabi_type_svml)
498 Enum(ix86_veclibabi) String(acml) Value(ix86_veclibabi_type_acml)
501 Target Mask(VECT8_RETURNS) Save
502 Return 8-byte vectors in memory.
505 Target Mask(RECIP) Save
506 Generate reciprocals instead of divss and sqrtss.
509 Target RejectNegative Joined Var(ix86_recip_name)
510 Control generation of reciprocal estimates.
513 Target Mask(CLD) Save
514 Generate cld instruction in the function prologue.
517 Target Mask(VZEROUPPER) Save
518 Generate vzeroupper instruction before a transfer of control flow out of
522 Target Mask(STV) Save
523 Disable Scalar to Vector optimization pass transforming 64-bit integer
524 computations into a vector ones.
527 Target RejectNegative Var(flag_dispatch_scheduler)
528 Do dispatch scheduling if processor is bdver1, bdver2, bdver3, bdver4
529 or znver1 and Haifa scheduling is selected.
532 Target Alias(mprefer-vector-width=, 128, 256)
533 Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer.
535 mprefer-vector-width=
536 Target RejectNegative Joined Var(prefer_vector_width_type) Enum(prefer_vector_width) Init(PVW_NONE) Save
537 Use given register vector width instructions instead of maximum register width in the auto-vectorizer.
540 Name(prefer_vector_width) Type(enum prefer_vector_width)
541 Known preferred register vector length (to use with the -mprefer-vector-width= option):
544 Enum(prefer_vector_width) String(none) Value(PVW_NONE)
547 Enum(prefer_vector_width) String(128) Value(PVW_AVX128)
550 Enum(prefer_vector_width) String(256) Value(PVW_AVX256)
553 Enum(prefer_vector_width) String(512) Value(PVW_AVX512)
556 Target RejectNegative Joined Var(ix86_move_max) Enum(prefer_vector_width) Init(PVW_NONE) Save
557 Maximum number of bits that can be moved from memory to memory efficiently.
560 Target RejectNegative Joined Var(ix86_store_max) Enum(prefer_vector_width) Init(PVW_NONE) Save
561 Maximum number of bits that can be stored to memory efficiently.
566 Target RejectNegative Negative(m64) InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
567 Generate 32bit i386 code.
570 Target RejectNegative Negative(mx32) Mask(ABI_64) Var(ix86_isa_flags) Save
571 Generate 64bit x86-64 code.
574 Target RejectNegative Negative(m16) Mask(ABI_X32) Var(ix86_isa_flags) Save
575 Generate 32bit x86-64 code.
578 Target RejectNegative Negative(m32) Mask(CODE16) InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
579 Generate 16bit i386 code.
582 Target Mask(ISA_MMX) Var(ix86_isa_flags) Save
583 Support MMX built-in functions.
586 Target Mask(ISA_3DNOW) Var(ix86_isa_flags) Save
587 Support 3DNow! built-in functions.
590 Target Mask(ISA_3DNOW_A) Var(ix86_isa_flags) Save
591 Support Athlon 3Dnow! built-in functions.
594 Target Mask(ISA_SSE) Var(ix86_isa_flags) Save
595 Support MMX and SSE built-in functions and code generation.
598 Target Mask(ISA_SSE2) Var(ix86_isa_flags) Save
599 Support MMX, SSE and SSE2 built-in functions and code generation.
602 Target Mask(ISA_SSE3) Var(ix86_isa_flags) Save
603 Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation.
606 Target Mask(ISA_SSSE3) Var(ix86_isa_flags) Save
607 Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation.
610 Target Mask(ISA_SSE4_1) Var(ix86_isa_flags) Save
611 Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation.
614 Target Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
615 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
618 Target RejectNegative Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
619 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
622 Target RejectNegative InverseMask(ISA_SSE4_1) Var(ix86_isa_flags) Save
623 Do not support SSE4.1 and SSE4.2 built-in functions and code generation.
626 Target Undocumented Alias(mavx) Warn(%<-msse5%> was removed)
630 Target Mask(ISA_AVX) Var(ix86_isa_flags) Save
631 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation.
634 Target Mask(ISA_AVX2) Var(ix86_isa_flags) Save
635 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation.
638 Target Mask(ISA_AVX512F) Var(ix86_isa_flags) Save
639 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation.
642 Target Mask(ISA_AVX512PF) Var(ix86_isa_flags) Save
643 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generation.
646 Target Mask(ISA_AVX512ER) Var(ix86_isa_flags) Save
647 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generation.
650 Target Mask(ISA_AVX512CD) Var(ix86_isa_flags) Save
651 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation.
654 Target Mask(ISA_AVX512DQ) Var(ix86_isa_flags) Save
655 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation.
658 Target Mask(ISA_AVX512BW) Var(ix86_isa_flags) Save
659 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-in functions and code generation.
662 Target Mask(ISA_AVX512VL) Var(ix86_isa_flags) Save
663 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-in functions and code generation.
666 Target Mask(ISA_AVX512IFMA) Var(ix86_isa_flags) Save
667 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation.
670 Target Mask(ISA_AVX512VBMI) Var(ix86_isa_flags) Save
671 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation.
674 Target Mask(ISA2_AVX5124FMAPS) Var(ix86_isa_flags2) Save
675 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124FMAPS built-in functions and code generation.
678 Target Mask(ISA2_AVX5124VNNIW) Var(ix86_isa_flags2) Save
679 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124VNNIW built-in functions and code generation.
682 Target Mask(ISA_AVX512VPOPCNTDQ) Var(ix86_isa_flags) Save
683 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation.
686 Target Mask(ISA_AVX512VBMI2) Var(ix86_isa_flags) Save
687 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VBMI2 built-in functions and code generation.
690 Target Mask(ISA_AVX512VNNI) Var(ix86_isa_flags) Save
691 Support AVX512VNNI built-in functions and code generation.
694 Target Mask(ISA_AVX512BITALG) Var(ix86_isa_flags) Save
695 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512BITALG built-in functions and code generation.
698 Target Mask(ISA2_AVX512VP2INTERSECT) Var(ix86_isa_flags2) Save
699 Support AVX512VP2INTERSECT built-in functions and code generation.
702 Target Mask(ISA_FMA) Var(ix86_isa_flags) Save
703 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation.
706 Target Mask(ISA_SSE4A) Var(ix86_isa_flags) Save
707 Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation.
710 Target Mask(ISA_FMA4) Var(ix86_isa_flags) Save
711 Support FMA4 built-in functions and code generation.
714 Target Mask(ISA_XOP) Var(ix86_isa_flags) Save
715 Support XOP built-in functions and code generation.
718 Target Mask(ISA_LWP) Var(ix86_isa_flags) Save
719 Support LWP built-in functions and code generation.
722 Target Mask(ISA_ABM) Var(ix86_isa_flags) Save
723 Support code generation of Advanced Bit Manipulation (ABM) instructions.
726 Target Mask(ISA_POPCNT) Var(ix86_isa_flags) Save
727 Support code generation of popcnt instruction.
730 Target Mask(ISA2_PCONFIG) Var(ix86_isa_flags2) Save
731 Support PCONFIG built-in functions and code generation.
734 Target Mask(ISA2_WBNOINVD) Var(ix86_isa_flags2) Save
735 Support WBNOINVD built-in functions and code generation.
738 Target Mask(ISA2_PTWRITE) Var(ix86_isa_flags2) Save
739 Support PTWRITE built-in functions and code generation.
742 Target Mask(ISA2_UINTR) Var(ix86_isa_flags2) Save
743 Support UINTR built-in functions and code generation.
746 Target Mask(ISA2_SGX) Var(ix86_isa_flags2) Save
747 Support SGX built-in functions and code generation.
750 Target Mask(ISA2_RDPID) Var(ix86_isa_flags2) Save
751 Support RDPID built-in functions and code generation.
754 Target Mask(ISA_GFNI) Var(ix86_isa_flags) Save
755 Support GFNI built-in functions and code generation.
758 Target Mask(ISA2_VAES) Var(ix86_isa_flags2) Save
759 Support VAES built-in functions and code generation.
762 Target Mask(ISA_VPCLMULQDQ) Var(ix86_isa_flags) Save
763 Support VPCLMULQDQ built-in functions and code generation.
766 Target Mask(ISA_BMI) Var(ix86_isa_flags) Save
767 Support BMI built-in functions and code generation.
770 Target Mask(ISA_BMI2) Var(ix86_isa_flags) Save
771 Support BMI2 built-in functions and code generation.
774 Target Mask(ISA_LZCNT) Var(ix86_isa_flags) Save
775 Support LZCNT built-in function and code generation.
778 Target Mask(ISA2_HLE) Var(ix86_isa_flags2) Save
779 Support Hardware Lock Elision prefixes.
782 Target Mask(ISA_RDSEED) Var(ix86_isa_flags) Save
783 Support RDSEED instruction.
786 Target Mask(ISA_PRFCHW) Var(ix86_isa_flags) Save
787 Support PREFETCHW instruction.
790 Target Mask(ISA_ADX) Var(ix86_isa_flags) Save
791 Support flag-preserving add-carry instructions.
794 Target Mask(ISA_CLFLUSHOPT) Var(ix86_isa_flags) Save
795 Support CLFLUSHOPT instructions.
798 Target Mask(ISA_CLWB) Var(ix86_isa_flags) Save
799 Support CLWB instruction.
805 Target Mask(ISA_FXSR) Var(ix86_isa_flags) Save
806 Support FXSAVE and FXRSTOR instructions.
809 Target Mask(ISA_XSAVE) Var(ix86_isa_flags) Save
810 Support XSAVE and XRSTOR instructions.
813 Target Mask(ISA_XSAVEOPT) Var(ix86_isa_flags) Save
814 Support XSAVEOPT instruction.
817 Target Mask(ISA_XSAVEC) Var(ix86_isa_flags) Save
818 Support XSAVEC instructions.
821 Target Mask(ISA_XSAVES) Var(ix86_isa_flags) Save
822 Support XSAVES and XRSTORS instructions.
825 Target Mask(ISA_TBM) Var(ix86_isa_flags) Save
826 Support TBM built-in functions and code generation.
829 Target Mask(ISA2_CX16) Var(ix86_isa_flags2) Save
830 Support code generation of cmpxchg16b instruction.
833 Target Mask(ISA_SAHF) Var(ix86_isa_flags) Save
834 Support code generation of sahf instruction in 64bit x86-64 code.
837 Target Mask(ISA2_MOVBE) Var(ix86_isa_flags2) Save
838 Support code generation of movbe instruction.
841 Target Mask(ISA_CRC32) Var(ix86_isa_flags) Save
842 Support code generation of crc32 instruction.
845 Target Mask(ISA_AES) Var(ix86_isa_flags) Save
846 Support AES built-in functions and code generation.
849 Target Mask(ISA_SHA) Var(ix86_isa_flags) Save
850 Support SHA1 and SHA256 built-in functions and code generation.
853 Target Mask(ISA_PCLMUL) Var(ix86_isa_flags) Save
854 Support PCLMUL built-in functions and code generation.
857 Target Var(ix86_sse2avx)
858 Encode SSE instructions with VEX prefix.
861 Target Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
862 Support FSGSBASE built-in functions and code generation.
865 Target Mask(ISA_RDRND) Var(ix86_isa_flags) Save
866 Support RDRND built-in functions and code generation.
869 Target Mask(ISA_F16C) Var(ix86_isa_flags) Save
870 Support F16C built-in functions and code generation.
873 Target Mask(ISA_PREFETCHWT1) Var(ix86_isa_flags) Save
874 Support PREFETCHWT1 built-in functions and code generation.
877 Target Save Var(flag_fentry)
878 Emit profiling counter call at function entry before prologue.
881 Target Var(flag_record_mcount)
882 Generate __mcount_loc section with all mcount or __fentry__ calls.
885 Target Var(flag_nop_mcount)
886 Generate mcount/__fentry__ calls as nops. To activate they need to be
890 Target RejectNegative Joined Var(fentry_name)
891 Set name of __fentry__ symbol called at function entry.
894 Target RejectNegative Joined Var(fentry_section)
895 Set name of section to record mrecord-mcount calls.
898 Target Var(flag_skip_rax_setup)
899 Skip setting up RAX register when passing variable arguments.
902 Target Mask(USE_8BIT_IDIV) Save
903 Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check.
905 mavx256-split-unaligned-load
906 Target Mask(AVX256_SPLIT_UNALIGNED_LOAD) Save
907 Split 32-byte AVX unaligned load.
909 mavx256-split-unaligned-store
910 Target Mask(AVX256_SPLIT_UNALIGNED_STORE) Save
911 Split 32-byte AVX unaligned store.
914 Target Mask(ISA_RTM) Var(ix86_isa_flags) Save
915 Support RTM built-in functions and code generation.
919 Removed in GCC 9. This switch has no effect.
922 Target Mask(ISA2_MWAITX) Var(ix86_isa_flags2) Save
923 Support MWAITX and MONITORX built-in functions and code generation.
926 Target Mask(ISA2_CLZERO) Var(ix86_isa_flags2) Save
927 Support CLZERO built-in functions and code generation.
930 Target Mask(ISA_PKU) Var(ix86_isa_flags) Save
931 Support PKU built-in functions and code generation.
933 mstack-protector-guard=
934 Target RejectNegative Joined Enum(stack_protector_guard) Var(ix86_stack_protector_guard) Init(SSP_TLS)
935 Use given stack-protector guard.
938 Name(stack_protector_guard) Type(enum stack_protector_guard)
939 Known stack protector guard (for use with the -mstack-protector-guard= option):
942 Enum(stack_protector_guard) String(tls) Value(SSP_TLS)
945 Enum(stack_protector_guard) String(global) Value(SSP_GLOBAL)
947 mstack-protector-guard-reg=
948 Target Save RejectNegative Joined Var(ix86_stack_protector_guard_reg_str)
949 Use the given base register for addressing the stack-protector guard.
952 addr_space_t ix86_stack_protector_guard_reg = ADDR_SPACE_GENERIC
954 mstack-protector-guard-offset=
955 Target Save RejectNegative Joined Integer Var(ix86_stack_protector_guard_offset_str)
956 Use the given offset for addressing the stack-protector guard.
959 HOST_WIDE_INT ix86_stack_protector_guard_offset = 0
961 mstack-protector-guard-symbol=
962 Target Save RejectNegative Joined Integer Var(ix86_stack_protector_guard_symbol_str)
963 Use the given symbol for addressing the stack-protector guard.
969 Target RejectNegative Mask(GENERAL_REGS_ONLY) Var(ix86_target_flags) Save
970 Generate code which uses only the general registers.
973 Target Mask(ISA_SHSTK) Var(ix86_isa_flags) Save
974 Enable shadow stack built-in functions from Control-flow Enforcement
978 Target Undocumented Var(flag_cet_switch) Init(0)
979 Turn on CET instrumentation for switch statements that use a jump table and
983 Target Var(flag_manual_endbr) Init(0)
984 Insert ENDBR instruction at function entry only via cf_check attribute
985 for CET instrumentation.
988 Target Var(flag_force_indirect_call) Init(0)
989 Make all function calls indirect.
992 Target RejectNegative Joined Enum(indirect_branch) Var(ix86_indirect_branch) Init(indirect_branch_keep)
993 Convert indirect call and jump to call and return thunks.
996 Target RejectNegative Joined Enum(indirect_branch) Var(ix86_function_return) Init(indirect_branch_keep)
997 Convert function return to call and return thunk.
1000 Name(indirect_branch) Type(enum indirect_branch)
1001 Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
1004 Enum(indirect_branch) String(keep) Value(indirect_branch_keep)
1007 Enum(indirect_branch) String(thunk) Value(indirect_branch_thunk)
1010 Enum(indirect_branch) String(thunk-inline) Value(indirect_branch_thunk_inline)
1013 Enum(indirect_branch) String(thunk-extern) Value(indirect_branch_thunk_extern)
1015 mindirect-branch-cs-prefix
1016 Target Var(ix86_indirect_branch_cs_prefix) Init(0)
1017 Add CS prefix to call and jmp to indirect thunk with branch target in r8-r15 registers.
1019 mindirect-branch-register
1020 Target Var(ix86_indirect_branch_register) Init(0)
1021 Force indirect call and jump via register.
1024 Target Mask(ISA_MOVDIRI) Var(ix86_isa_flags) Save
1025 Support MOVDIRI built-in functions and code generation.
1028 Target Mask(ISA2_MOVDIR64B) Var(ix86_isa_flags2) Save
1029 Support MOVDIR64B built-in functions and code generation.
1032 Target Mask(ISA2_WAITPKG) Var(ix86_isa_flags2) Save
1033 Support WAITPKG built-in functions and code generation.
1036 Target Mask(ISA2_CLDEMOTE) Var(ix86_isa_flags2) Save
1037 Support CLDEMOTE built-in functions and code generation.
1040 Target RejectNegative Joined Enum(instrument_return) Var(ix86_instrument_return) Init(instrument_return_none)
1041 Instrument function exit in instrumented functions with __fentry__.
1044 Name(instrument_return) Type(enum instrument_return)
1045 Known choices for return instrumentation with -minstrument-return=:
1048 Enum(instrument_return) String(none) Value(instrument_return_none)
1051 Enum(instrument_return) String(call) Value(instrument_return_call)
1054 Enum(instrument_return) String(nop5) Value(instrument_return_nop5)
1057 Target Var(ix86_flag_record_return) Init(0)
1058 Generate a __return_loc section pointing to all return instrumentation code.
1061 Target RejectNegative Joined Enum(harden_sls) Var(ix86_harden_sls) Init(harden_sls_none)
1062 Generate code to mitigate against straight line speculation.
1065 Name(harden_sls) Type(enum harden_sls)
1066 Known choices for mitigation against straight line speculation with -mharden-sls=:
1069 Enum(harden_sls) String(none) Value(harden_sls_none)
1072 Enum(harden_sls) String(return) Value(harden_sls_return)
1075 Enum(harden_sls) String(indirect-jmp) Value(harden_sls_indirect_jmp)
1078 Enum(harden_sls) String(all) Value(harden_sls_all)
1081 Target Mask(ISA2_AVX512BF16) Var(ix86_isa_flags2) Save
1082 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and
1083 AVX512BF16 built-in functions and code generation.
1086 Target Mask(ISA2_ENQCMD) Var(ix86_isa_flags2) Save
1087 Support ENQCMD built-in functions and code generation.
1090 Target Mask(ISA2_SERIALIZE) Var(ix86_isa_flags2) Save
1091 Support SERIALIZE built-in functions and code generation.
1094 Target Mask(ISA2_TSXLDTRK) Var(ix86_isa_flags2) Save
1095 Support TSXLDTRK built-in functions and code generation.
1098 Target Mask(ISA2_AMX_TILE) Var(ix86_isa_flags2) Save
1099 Support AMX-TILE built-in functions and code generation.
1102 Target Mask(ISA2_AMX_INT8) Var(ix86_isa_flags2) Save
1103 Support AMX-INT8 built-in functions and code generation.
1106 Target Mask(ISA2_AMX_BF16) Var(ix86_isa_flags2) Save
1107 Support AMX-BF16 built-in functions and code generation.
1110 Target Mask(ISA2_HRESET) Var(ix86_isa_flags2) Save
1111 Support HRESET built-in functions and code generation.
1114 Target Mask(ISA2_KL) Var(ix86_isa_flags2) Save
1115 Support KL built-in functions and code generation.
1118 Target Mask(ISA2_WIDEKL) Var(ix86_isa_flags2) Save
1119 Support WIDEKL built-in functions and code generation.
1122 Target Mask(ISA2_AVXVNNI) Var(ix86_isa_flags2) Save
1123 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and
1124 AVXVNNI built-in functions and code generation.
1127 Target Var(ix86_needed) Save
1128 Emit GNU_PROPERTY_X86_ISA_1_NEEDED GNU property.
1131 Target Mask(ISA2_MWAIT) Var(ix86_isa_flags2) Save
1132 Support MWAIT and MONITOR built-in functions and code generation.
1135 Target Mask(ISA2_AVX512FP16) Var(ix86_isa_flags2) Save
1136 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512FP16 built-in functions and code generation.
1138 mdirect-extern-access
1139 Target Var(ix86_direct_extern_access) Init(1)
1140 Do not use GOT to access external symbols.
1142 -param=x86-stlf-window-ninsns=
1143 Target Joined UInteger Var(x86_stlf_window_ninsns) Init(64) Param
1144 Instructions number above which STFL stall penalty can be compensated.