[AArch64] Fix ICEs in aarch64_print_operand
[official-gcc.git] / gcc / config / i386 / i386.opt
blob6632ba800248be98278de9786a9e396ceffb0cfa
1 ; Options for the IA-32 and AMD64 ports of the compiler.
3 ; Copyright (C) 2005-2017 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
10 ; version.
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
15 ; for more details.
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/>.
21 HeaderInclude
22 config/i386/i386-opts.h
24 ; Bit flags that specify the ISA we are compiling for.
25 Variable
26 HOST_WIDE_INT ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT
28 Variable
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.
33 Variable
34 HOST_WIDE_INT ix86_isa_flags_explicit
36 Variable
37 HOST_WIDE_INT ix86_isa_flags2_explicit
39 ; Additional target flags
40 Variable
41 int ix86_target_flags
43 TargetVariable
44 int recip_mask = RECIP_MASK_DEFAULT
46 Variable
47 int recip_mask_explicit
49 TargetSave
50 int x_recip_mask_explicit
52 ;; Definitions to add to the cl_target_option structure
53 ;; -march= processor
54 TargetSave
55 unsigned char arch
57 ;; -mtune= processor
58 TargetSave
59 unsigned char tune
61 ;; -march= processor-string
62 TargetSave
63 const char *x_ix86_arch_string
65 ;; -mtune= processor-string
66 TargetSave
67 const char *x_ix86_tune_string
69 ;; CPU schedule model
70 TargetSave
71 unsigned char schedule
73 ;; True if processor has SSE prefetch instruction.
74 TargetSave
75 unsigned char prefetch_sse
77 ;; branch cost
78 TargetSave
79 unsigned char branch_cost
81 ;; which flags were passed by the user
82 TargetSave
83 HOST_WIDE_INT x_ix86_isa_flags2_explicit
85 ;; which flags were passed by the user
86 TargetSave
87 HOST_WIDE_INT x_ix86_isa_flags_explicit
89 ;; whether -mtune was not specified
90 TargetSave
91 unsigned char tune_defaulted
93 ;; whether -march was specified
94 TargetSave
95 unsigned char arch_specified
97 ;; -mcmodel= model
98 TargetSave
99 enum cmodel x_ix86_cmodel
101 ;; -mabi=
102 TargetSave
103 enum calling_abi x_ix86_abi
105 ;; -masm=
106 TargetSave
107 enum asm_dialect x_ix86_asm_dialect
109 ;; -mbranch-cost=
110 TargetSave
111 int x_ix86_branch_cost
113 ;; -mdump-tune-features=
114 TargetSave
115 int x_ix86_dump_tunes
117 ;; -mstackrealign=
118 TargetSave
119 int x_ix86_force_align_arg_pointer
121 ;; -mforce-drap=
122 TargetSave
123 int x_ix86_force_drap
125 ;; -mincoming-stack-boundary=
126 TargetSave
127 int x_ix86_incoming_stack_boundary_arg
129 ;; -maddress-mode=
130 TargetSave
131 enum pmode x_ix86_pmode
133 ;; -mpreferred-stack-boundary=
134 TargetSave
135 int x_ix86_preferred_stack_boundary_arg
137 ;; -mrecip=
138 TargetSave
139 const char *x_ix86_recip_name
141 ;; -mregparm=
142 TargetSave
143 int x_ix86_regparm
145 ;; -mlarge-data-threshold=
146 TargetSave
147 int x_ix86_section_threshold
149 ;; -msse2avx=
150 TargetSave
151 int x_ix86_sse2avx
153 ;; -mstack-protector-guard=
154 TargetSave
155 enum stack_protector_guard x_ix86_stack_protector_guard
157 ;; -mstringop-strategy=
158 TargetSave
159 enum stringop_alg x_ix86_stringop_alg
161 ;; -mtls-dialect=
162 TargetSave
163 enum tls_dialect x_ix86_tls_dialect
165 ;; -mtune-ctrl=
166 TargetSave
167 const char *x_ix86_tune_ctrl_string
169 ;; -mmemcpy-strategy=
170 TargetSave
171 const char *x_ix86_tune_memcpy_strategy
173 ;; -mmemset-strategy=
174 TargetSave
175 const char *x_ix86_tune_memset_strategy
177 ;; -mno-default=
178 TargetSave
179 int x_ix86_tune_no_default
181 ;; -mveclibabi=
182 TargetSave
183 enum ix86_veclibabi x_ix86_veclibabi_type
185 ;; -mprefer-vector-width=
186 TargetSave
187 enum prefer_vector_width x_prefer_vector_width_type
189 ;; x86 options
190 m128bit-long-double
191 Target RejectNegative Report Mask(128BIT_LONG_DOUBLE) Save
192 sizeof(long double) is 16.
194 m80387
195 Target Report Mask(80387) Save
196 Use hardware fp.
198 m96bit-long-double
199 Target RejectNegative Report InverseMask(128BIT_LONG_DOUBLE) Save
200 sizeof(long double) is 12.
202 mlong-double-80
203 Target Report RejectNegative Negative(mlong-double-64) InverseMask(LONG_DOUBLE_64) Save
204 Use 80-bit long double.
206 mlong-double-64
207 Target Report RejectNegative Negative(mlong-double-128) Mask(LONG_DOUBLE_64) InverseMask(LONG_DOUBLE_128) Save
208 Use 64-bit long double.
210 mlong-double-128
211 Target Report RejectNegative Negative(mlong-double-80) Mask(LONG_DOUBLE_128) InverseMask(LONG_DOUBLE_64) Save
212 Use 128-bit long double.
214 maccumulate-outgoing-args
215 Target Report Mask(ACCUMULATE_OUTGOING_ARGS) Save
216 Reserve space for outgoing arguments in the function prologue.
218 malign-double
219 Target Report Mask(ALIGN_DOUBLE) Save
220 Align some doubles on dword boundary.
222 malign-functions=
223 Target RejectNegative Joined UInteger
224 Function starts are aligned to this power of 2.
226 malign-jumps=
227 Target RejectNegative Joined UInteger
228 Jump targets are aligned to this power of 2.
230 malign-loops=
231 Target RejectNegative Joined UInteger
232 Loop code aligned to this power of 2.
234 malign-stringops
235 Target RejectNegative Report InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS) Save
236 Align destination of the string operations.
238 malign-data=
239 Target RejectNegative Joined Var(ix86_align_data_type) Enum(ix86_align_data) Init(ix86_align_data_type_compat)
240 Use the given data alignment.
242 Enum
243 Name(ix86_align_data) Type(enum ix86_align_data)
244 Known data alignment choices (for use with the -malign-data= option):
246 EnumValue
247 Enum(ix86_align_data) String(compat) Value(ix86_align_data_type_compat)
249 EnumValue
250 Enum(ix86_align_data) String(abi) Value(ix86_align_data_type_abi)
252 EnumValue
253 Enum(ix86_align_data) String(cacheline) Value(ix86_align_data_type_cacheline)
255 march=
256 Target RejectNegative Joined Var(ix86_arch_string)
257 Generate code for given CPU.
259 masm=
260 Target RejectNegative Joined Enum(asm_dialect) Var(ix86_asm_dialect) Init(ASM_ATT)
261 Use given assembler dialect.
263 Enum
264 Name(asm_dialect) Type(enum asm_dialect)
265 Known assembler dialects (for use with the -masm= option):
267 EnumValue
268 Enum(asm_dialect) String(intel) Value(ASM_INTEL)
270 EnumValue
271 Enum(asm_dialect) String(att) Value(ASM_ATT)
273 mbranch-cost=
274 Target RejectNegative Joined UInteger Var(ix86_branch_cost) IntegerRange(0, 5)
275 Branches are this expensive (arbitrary units).
277 mlarge-data-threshold=
278 Target RejectNegative Joined UInteger Var(ix86_section_threshold) Init(DEFAULT_LARGE_SECTION_THRESHOLD)
279 -mlarge-data-threshold=<number> Data greater than given threshold will go into .ldata section in x86-64 medium model.
281 mcmodel=
282 Target RejectNegative Joined Enum(cmodel) Var(ix86_cmodel) Init(CM_32)
283 Use given x86-64 code model.
285 Enum
286 Name(cmodel) Type(enum cmodel)
287 Known code models (for use with the -mcmodel= option):
289 EnumValue
290 Enum(cmodel) String(small) Value(CM_SMALL)
292 EnumValue
293 Enum(cmodel) String(medium) Value(CM_MEDIUM)
295 EnumValue
296 Enum(cmodel) String(large) Value(CM_LARGE)
298 EnumValue
299 Enum(cmodel) String(32) Value(CM_32)
301 EnumValue
302 Enum(cmodel) String(kernel) Value(CM_KERNEL)
304 maddress-mode=
305 Target RejectNegative Joined Enum(pmode) Var(ix86_pmode) Init(PMODE_SI)
306 Use given address mode.
308 Enum
309 Name(pmode) Type(enum pmode)
310 Known address mode (for use with the -maddress-mode= option):
312 EnumValue
313 Enum(pmode) String(short) Value(PMODE_SI)
315 EnumValue
316 Enum(pmode) String(long) Value(PMODE_DI)
318 mcpu=
319 Target RejectNegative Joined Undocumented Alias(mtune=) Warn(%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead)
321 mfancy-math-387
322 Target RejectNegative Report InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387) Save
323 Generate sin, cos, sqrt for FPU.
325 mforce-drap
326 Target Report Var(ix86_force_drap)
327 Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack.
329 mfp-ret-in-387
330 Target Report Mask(FLOAT_RETURNS) Save
331 Return values of functions in FPU registers.
333 mfpmath=
334 Target RejectNegative Joined Var(ix86_fpmath) Enum(fpmath_unit) Init(FPMATH_387) Save
335 Generate floating point mathematics using given instruction set.
337 Enum
338 Name(fpmath_unit) Type(enum fpmath_unit)
339 Valid arguments to -mfpmath=:
341 EnumValue
342 Enum(fpmath_unit) String(387) Value(FPMATH_387)
344 EnumValue
345 Enum(fpmath_unit) String(sse) Value(FPMATH_SSE)
347 EnumValue
348 Enum(fpmath_unit) String(387,sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
350 EnumValue
351 Enum(fpmath_unit) String(387+sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
353 EnumValue
354 Enum(fpmath_unit) String(sse,387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
356 EnumValue
357 Enum(fpmath_unit) String(sse+387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
359 EnumValue
360 Enum(fpmath_unit) String(both) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
362 mhard-float
363 Target RejectNegative Mask(80387) Save
364 Use hardware fp.
366 mieee-fp
367 Target Report Mask(IEEE_FP) Save
368 Use IEEE math for fp comparisons.
370 minline-all-stringops
371 Target Report Mask(INLINE_ALL_STRINGOPS) Save
372 Inline all known string operations.
374 minline-stringops-dynamically
375 Target Report Mask(INLINE_STRINGOPS_DYNAMICALLY) Save
376 Inline memset/memcpy string operations, but perform inline version only for small blocks.
378 mintel-syntax
379 Target Undocumented Alias(masm=, intel, att) Warn(%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead)
380 ;; Deprecated
382 mms-bitfields
383 Target Report Mask(MS_BITFIELD_LAYOUT) Save
384 Use native (MS) bitfield layout.
386 mno-align-stringops
387 Target RejectNegative Report Mask(NO_ALIGN_STRINGOPS) Undocumented Save
389 mno-fancy-math-387
390 Target RejectNegative Report Mask(NO_FANCY_MATH_387) Undocumented Save
392 mno-push-args
393 Target RejectNegative Report Mask(NO_PUSH_ARGS) Undocumented Save
395 mno-red-zone
396 Target RejectNegative Report Mask(NO_RED_ZONE) Undocumented Save
398 momit-leaf-frame-pointer
399 Target Report Mask(OMIT_LEAF_FRAME_POINTER) Save
400 Omit the frame pointer in leaf functions.
402 mpc32
403 Target RejectNegative Report
404 Set 80387 floating-point precision to 32-bit.
406 mpc64
407 Target RejectNegative Report
408 Set 80387 floating-point precision to 64-bit.
410 mpc80
411 Target RejectNegative Report
412 Set 80387 floating-point precision to 80-bit.
414 mpreferred-stack-boundary=
415 Target RejectNegative Joined UInteger Var(ix86_preferred_stack_boundary_arg)
416 Attempt to keep stack aligned to this power of 2.
418 mincoming-stack-boundary=
419 Target RejectNegative Joined UInteger Var(ix86_incoming_stack_boundary_arg)
420 Assume incoming stack aligned to this power of 2.
422 mpush-args
423 Target Report InverseMask(NO_PUSH_ARGS, PUSH_ARGS) Save
424 Use push instructions to save outgoing arguments.
426 mred-zone
427 Target RejectNegative Report InverseMask(NO_RED_ZONE, RED_ZONE) Save
428 Use red-zone in the x86-64 code.
430 mregparm=
431 Target RejectNegative Joined UInteger Var(ix86_regparm)
432 Number of registers used to pass integer arguments.
434 mrtd
435 Target Report Mask(RTD) Save
436 Alternate calling convention.
438 msoft-float
439 Target InverseMask(80387) Save
440 Do not use hardware fp.
442 msseregparm
443 Target RejectNegative Mask(SSEREGPARM) Save
444 Use SSE register passing conventions for SF and DF mode.
446 mstackrealign
447 Target Report Var(ix86_force_align_arg_pointer)
448 Realign stack in prologue.
450 mstack-arg-probe
451 Target Report Mask(STACK_PROBE) Save
452 Enable stack probing.
454 mmemcpy-strategy=
455 Target RejectNegative Joined Var(ix86_tune_memcpy_strategy)
456 Specify memcpy expansion strategy when expected size is known.
458 mmemset-strategy=
459 Target RejectNegative Joined Var(ix86_tune_memset_strategy)
460 Specify memset expansion strategy when expected size is known.
462 mstringop-strategy=
463 Target RejectNegative Joined Enum(stringop_alg) Var(ix86_stringop_alg) Init(no_stringop)
464 Chose strategy to generate stringop using.
466 Enum
467 Name(stringop_alg) Type(enum stringop_alg)
468 Valid arguments to -mstringop-strategy=:
470 EnumValue
471 Enum(stringop_alg) String(rep_byte) Value(rep_prefix_1_byte)
473 EnumValue
474 Enum(stringop_alg) String(libcall) Value(libcall)
476 EnumValue
477 Enum(stringop_alg) String(rep_4byte) Value(rep_prefix_4_byte)
479 EnumValue
480 Enum(stringop_alg) String(rep_8byte) Value(rep_prefix_8_byte)
482 EnumValue
483 Enum(stringop_alg) String(byte_loop) Value(loop_1_byte)
485 EnumValue
486 Enum(stringop_alg) String(loop) Value(loop)
488 EnumValue
489 Enum(stringop_alg) String(unrolled_loop) Value(unrolled_loop)
491 EnumValue
492 Enum(stringop_alg) String(vector_loop) Value(vector_loop)
494 mtls-dialect=
495 Target RejectNegative Joined Var(ix86_tls_dialect) Enum(tls_dialect) Init(TLS_DIALECT_GNU)
496 Use given thread-local storage dialect.
498 Enum
499 Name(tls_dialect) Type(enum tls_dialect)
500 Known TLS dialects (for use with the -mtls-dialect= option):
502 EnumValue
503 Enum(tls_dialect) String(gnu) Value(TLS_DIALECT_GNU)
505 EnumValue
506 Enum(tls_dialect) String(gnu2) Value(TLS_DIALECT_GNU2)
508 mtls-direct-seg-refs
509 Target Report Mask(TLS_DIRECT_SEG_REFS)
510 Use direct references against %gs when accessing tls data.
512 mtune=
513 Target RejectNegative Joined Var(ix86_tune_string)
514 Schedule code for given CPU.
516 mtune-ctrl=
517 Target RejectNegative Joined Var(ix86_tune_ctrl_string)
518 Fine grain control of tune features.
520 mno-default
521 Target RejectNegative Var(ix86_tune_no_default)
522 Clear all tune features.
524 mdump-tune-features
525 Target RejectNegative Var(ix86_dump_tunes)
527 miamcu
528 Target Report Mask(IAMCU)
529 Generate code that conforms to Intel MCU psABI.
531 mabi=
532 Target RejectNegative Joined Var(ix86_abi) Enum(calling_abi) Init(SYSV_ABI)
533 Generate code that conforms to the given ABI.
535 Enum
536 Name(calling_abi) Type(enum calling_abi)
537 Known ABIs (for use with the -mabi= option):
539 EnumValue
540 Enum(calling_abi) String(sysv) Value(SYSV_ABI)
542 EnumValue
543 Enum(calling_abi) String(ms) Value(MS_ABI)
545 mcall-ms2sysv-xlogues
546 Target Report Mask(CALL_MS2SYSV_XLOGUES) Save
547 Use libgcc stubs to save and restore registers clobbered by 64-bit Microsoft to System V ABI calls.
549 mveclibabi=
550 Target RejectNegative Joined Var(ix86_veclibabi_type) Enum(ix86_veclibabi) Init(ix86_veclibabi_type_none)
551 Vector library ABI to use.
553 Enum
554 Name(ix86_veclibabi) Type(enum ix86_veclibabi)
555 Known vectorization library ABIs (for use with the -mveclibabi= option):
557 EnumValue
558 Enum(ix86_veclibabi) String(svml) Value(ix86_veclibabi_type_svml)
560 EnumValue
561 Enum(ix86_veclibabi) String(acml) Value(ix86_veclibabi_type_acml)
563 mvect8-ret-in-mem
564 Target Report Mask(VECT8_RETURNS) Save
565 Return 8-byte vectors in memory.
567 mrecip
568 Target Report Mask(RECIP) Save
569 Generate reciprocals instead of divss and sqrtss.
571 mrecip=
572 Target Report RejectNegative Joined Var(ix86_recip_name)
573 Control generation of reciprocal estimates.
575 mcld
576 Target Report Mask(CLD) Save
577 Generate cld instruction in the function prologue.
579 mvzeroupper
580 Target Report Mask(VZEROUPPER) Save
581 Generate vzeroupper instruction before a transfer of control flow out of
582 the function.
584 mstv
585 Target Report Mask(STV) Save
586 Disable Scalar to Vector optimization pass transforming 64-bit integer
587 computations into a vector ones.
589 mdispatch-scheduler
590 Target RejectNegative Var(flag_dispatch_scheduler)
591 Do dispatch scheduling if processor is bdver1, bdver2, bdver3, bdver4
592 or znver1 and Haifa scheduling is selected.
594 mprefer-avx128
595 Target Alias(mprefer-vector-width=, 128, 256)
596 Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer.
598 mprefer-vector-width=
599 Target Report RejectNegative Joined Var(prefer_vector_width_type) Enum(prefer_vector_width) Init(PVW_NONE)
600 Use given register vector width instructions instead of maximum register width in the auto-vectorizer.
602 Enum
603 Name(prefer_vector_width) Type(enum prefer_vector_width)
604 Known preferred register vector length (to use with the -mprefer-vector-width= option)
606 EnumValue
607 Enum(prefer_vector_width) String(none) Value(PVW_NONE)
609 EnumValue
610 Enum(prefer_vector_width) String(128) Value(PVW_AVX128)
612 EnumValue
613 Enum(prefer_vector_width) String(256) Value(PVW_AVX256)
615 EnumValue
616 Enum(prefer_vector_width) String(512) Value(PVW_AVX512)
618 ;; ISA support
621 Target RejectNegative Negative(m64) Report InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
622 Generate 32bit i386 code.
625 Target RejectNegative Negative(mx32) Report Mask(ABI_64) Var(ix86_isa_flags) Save
626 Generate 64bit x86-64 code.
628 mx32
629 Target RejectNegative Negative(m16) Report Mask(ABI_X32) Var(ix86_isa_flags) Save
630 Generate 32bit x86-64 code.
633 Target RejectNegative Negative(m32) Report Mask(CODE16) InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
634 Generate 16bit i386 code.
636 mmmx
637 Target Report Mask(ISA_MMX) Var(ix86_isa_flags) Save
638 Support MMX built-in functions.
640 m3dnow
641 Target Report Mask(ISA_3DNOW) Var(ix86_isa_flags) Save
642 Support 3DNow! built-in functions.
644 m3dnowa
645 Target Report Mask(ISA_3DNOW_A) Var(ix86_isa_flags) Save
646 Support Athlon 3Dnow! built-in functions.
648 msse
649 Target Report Mask(ISA_SSE) Var(ix86_isa_flags) Save
650 Support MMX and SSE built-in functions and code generation.
652 msse2
653 Target Report Mask(ISA_SSE2) Var(ix86_isa_flags) Save
654 Support MMX, SSE and SSE2 built-in functions and code generation.
656 msse3
657 Target Report Mask(ISA_SSE3) Var(ix86_isa_flags) Save
658 Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation.
660 mssse3
661 Target Report Mask(ISA_SSSE3) Var(ix86_isa_flags) Save
662 Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation.
664 msse4.1
665 Target Report Mask(ISA_SSE4_1) Var(ix86_isa_flags) Save
666 Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation.
668 msse4.2
669 Target Report Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
670 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
672 msse4
673 Target RejectNegative Report Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
674 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
676 mno-sse4
677 Target RejectNegative Report InverseMask(ISA_SSE4_1) Var(ix86_isa_flags) Save
678 Do not support SSE4.1 and SSE4.2 built-in functions and code generation.
680 msse5
681 Target Undocumented Alias(mavx) Warn(%<-msse5%> was removed)
682 ;; Deprecated
684 mavx
685 Target Report Mask(ISA_AVX) Var(ix86_isa_flags) Save
686 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation.
688 mavx2
689 Target Report Mask(ISA_AVX2) Var(ix86_isa_flags) Save
690 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation.
692 mavx512f
693 Target Report Mask(ISA_AVX512F) Var(ix86_isa_flags) Save
694 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation.
696 mavx512pf
697 Target Report Mask(ISA_AVX512PF) Var(ix86_isa_flags) Save
698 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generation.
700 mavx512er
701 Target Report Mask(ISA_AVX512ER) Var(ix86_isa_flags) Save
702 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generation.
704 mavx512cd
705 Target Report Mask(ISA_AVX512CD) Var(ix86_isa_flags) Save
706 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation.
708 mavx512dq
709 Target Report Mask(ISA_AVX512DQ) Var(ix86_isa_flags) Save
710 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation.
712 mavx512bw
713 Target Report Mask(ISA_AVX512BW) Var(ix86_isa_flags) Save
714 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-in functions and code generation.
716 mavx512vl
717 Target Report Mask(ISA_AVX512VL) Var(ix86_isa_flags) Save
718 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-in functions and code generation.
720 mavx512ifma
721 Target Report Mask(ISA_AVX512IFMA) Var(ix86_isa_flags) Save
722 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation.
724 mavx512vbmi
725 Target Report Mask(ISA_AVX512VBMI) Var(ix86_isa_flags) Save
726 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation.
728 mavx5124fmaps
729 Target Report Mask(ISA_AVX5124FMAPS) Var(ix86_isa_flags2) Save
730 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124FMAPS built-in functions and code generation.
732 mavx5124vnniw
733 Target Report Mask(ISA_AVX5124VNNIW) Var(ix86_isa_flags2) Save
734 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124VNNIW built-in functions and code generation.
736 mavx512vpopcntdq
737 Target Report Mask(ISA_AVX512VPOPCNTDQ) Var(ix86_isa_flags2) Save
738 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation.
740 mavx512vbmi2
741 Target Report Mask(ISA_AVX512VBMI2) Var(ix86_isa_flags2) Save
742 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VBMI2 built-in functions and code generation.
744 mavx512vnni
745 Target Report Mask(ISA_AVX512VNNI) Var(ix86_isa_flags2) Save
746 Support AVX512VNNI built-in functions and code generation.
748 mfma
749 Target Report Mask(ISA_FMA) Var(ix86_isa_flags) Save
750 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation.
752 msse4a
753 Target Report Mask(ISA_SSE4A) Var(ix86_isa_flags) Save
754 Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation.
756 mfma4
757 Target Report Mask(ISA_FMA4) Var(ix86_isa_flags) Save
758 Support FMA4 built-in functions and code generation.
760 mxop
761 Target Report Mask(ISA_XOP) Var(ix86_isa_flags) Save
762 Support XOP built-in functions and code generation.
764 mlwp
765 Target Report Mask(ISA_LWP) Var(ix86_isa_flags) Save
766 Support LWP built-in functions and code generation.
768 mabm
769 Target Report Mask(ISA_ABM) Var(ix86_isa_flags) Save
770 Support code generation of Advanced Bit Manipulation (ABM) instructions.
772 mpopcnt
773 Target Report Mask(ISA_POPCNT) Var(ix86_isa_flags) Save
774 Support code generation of popcnt instruction.
776 msgx
777 Target Report Mask(ISA_SGX) Var(ix86_isa_flags2) Save
778 Support SGX built-in functions and code generation.
780 mrdpid
781 Target Report Mask(ISA_RDPID) Var(ix86_isa_flags2) Save
782 Support RDPID built-in functions and code generation.
784 mgfni
785 Target Report Mask(ISA_GFNI) Var(ix86_isa_flags) Save
786 Support GFNI built-in functions and code generation.
788 mbmi
789 Target Report Mask(ISA_BMI) Var(ix86_isa_flags) Save
790 Support BMI built-in functions and code generation.
792 mbmi2
793 Target Report Mask(ISA_BMI2) Var(ix86_isa_flags) Save
794 Support BMI2 built-in functions and code generation.
796 mlzcnt
797 Target Report Mask(ISA_LZCNT) Var(ix86_isa_flags) Save
798 Support LZCNT built-in function and code generation.
800 mhle
801 Target Report Mask(ISA_HLE) Var(ix86_isa_flags) Save
802 Support Hardware Lock Elision prefixes.
804 mrdseed
805 Target Report Mask(ISA_RDSEED) Var(ix86_isa_flags) Save
806 Support RDSEED instruction.
808 mprfchw
809 Target Report Mask(ISA_PRFCHW) Var(ix86_isa_flags) Save
810 Support PREFETCHW instruction.
812 madx
813 Target Report Mask(ISA_ADX) Var(ix86_isa_flags) Save
814 Support flag-preserving add-carry instructions.
816 mclflushopt
817 Target Report Mask(ISA_CLFLUSHOPT) Var(ix86_isa_flags) Save
818 Support CLFLUSHOPT instructions.
820 mclwb
821 Target Report Mask(ISA_CLWB) Var(ix86_isa_flags) Save
822 Support CLWB instruction.
824 mpcommit
825 Target Undocumented Warn(%<-mpcommit%> was deprecated)
826 ;; Deprecated
828 mfxsr
829 Target Report Mask(ISA_FXSR) Var(ix86_isa_flags) Save
830 Support FXSAVE and FXRSTOR instructions.
832 mxsave
833 Target Report Mask(ISA_XSAVE) Var(ix86_isa_flags) Save
834 Support XSAVE and XRSTOR instructions.
836 mxsaveopt
837 Target Report Mask(ISA_XSAVEOPT) Var(ix86_isa_flags) Save
838 Support XSAVEOPT instruction.
840 mxsavec
841 Target Report Mask(ISA_XSAVEC) Var(ix86_isa_flags) Save
842 Support XSAVEC instructions.
844 mxsaves
845 Target Report Mask(ISA_XSAVES) Var(ix86_isa_flags) Save
846 Support XSAVES and XRSTORS instructions.
848 mtbm
849 Target Report Mask(ISA_TBM) Var(ix86_isa_flags) Save
850 Support TBM built-in functions and code generation.
852 mcx16
853 Target Report Mask(ISA_CX16) Var(ix86_isa_flags) Save
854 Support code generation of cmpxchg16b instruction.
856 msahf
857 Target Report Mask(ISA_SAHF) Var(ix86_isa_flags) Save
858 Support code generation of sahf instruction in 64bit x86-64 code.
860 mmovbe
861 Target Report Mask(ISA_MOVBE) Var(ix86_isa_flags) Save
862 Support code generation of movbe instruction.
864 mcrc32
865 Target Report Mask(ISA_CRC32) Var(ix86_isa_flags) Save
866 Support code generation of crc32 instruction.
868 maes
869 Target Report Mask(ISA_AES) Var(ix86_isa_flags) Save
870 Support AES built-in functions and code generation.
872 msha
873 Target Report Mask(ISA_SHA) Var(ix86_isa_flags) Save
874 Support SHA1 and SHA256 built-in functions and code generation.
876 mpclmul
877 Target Report Mask(ISA_PCLMUL) Var(ix86_isa_flags) Save
878 Support PCLMUL built-in functions and code generation.
880 msse2avx
881 Target Report Var(ix86_sse2avx)
882 Encode SSE instructions with VEX prefix.
884 mfsgsbase
885 Target Report Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
886 Support FSGSBASE built-in functions and code generation.
888 mrdrnd
889 Target Report Mask(ISA_RDRND) Var(ix86_isa_flags) Save
890 Support RDRND built-in functions and code generation.
892 mf16c
893 Target Report Mask(ISA_F16C) Var(ix86_isa_flags) Save
894 Support F16C built-in functions and code generation.
896 mprefetchwt1
897 Target Report Mask(ISA_PREFETCHWT1) Var(ix86_isa_flags) Save
898 Support PREFETCHWT1 built-in functions and code generation.
900 mfentry
901 Target Report Var(flag_fentry)
902 Emit profiling counter call at function entry before prologue.
904 mrecord-mcount
905 Target Report Var(flag_record_mcount)
906 Generate __mcount_loc section with all mcount or __fentry__ calls.
908 mnop-mcount
909 Target Report Var(flag_nop_mcount)
910 Generate mcount/__fentry__ calls as nops. To activate they need to be
911 patched in.
913 mskip-rax-setup
914 Target Report Var(flag_skip_rax_setup)
915 Skip setting up RAX register when passing variable arguments.
917 m8bit-idiv
918 Target Report Mask(USE_8BIT_IDIV) Save
919 Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check.
921 mavx256-split-unaligned-load
922 Target Report Mask(AVX256_SPLIT_UNALIGNED_LOAD) Save
923 Split 32-byte AVX unaligned load.
925 mavx256-split-unaligned-store
926 Target Report Mask(AVX256_SPLIT_UNALIGNED_STORE) Save
927 Split 32-byte AVX unaligned store.
929 mrtm
930 Target Report Mask(ISA_RTM) Var(ix86_isa_flags) Save
931 Support RTM built-in functions and code generation.
933 mmpx
934 Target Report Mask(ISA_MPX) Var(ix86_isa_flags2) Save
935 Support MPX code generation.
937 mmwaitx
938 Target Report Mask(ISA_MWAITX) Var(ix86_isa_flags) Save
939 Support MWAITX and MONITORX built-in functions and code generation.
941 mclzero
942 Target Report Mask(ISA_CLZERO) Var(ix86_isa_flags) Save
943 Support CLZERO built-in functions and code generation.
945 mpku
946 Target Report Mask(ISA_PKU) Var(ix86_isa_flags) Save
947 Support PKU built-in functions and code generation.
949 mstack-protector-guard=
950 Target RejectNegative Joined Enum(stack_protector_guard) Var(ix86_stack_protector_guard) Init(SSP_TLS)
951 Use given stack-protector guard.
953 Enum
954 Name(stack_protector_guard) Type(enum stack_protector_guard)
955 Known stack protector guard (for use with the -mstack-protector-guard= option):
957 EnumValue
958 Enum(stack_protector_guard) String(tls) Value(SSP_TLS)
960 EnumValue
961 Enum(stack_protector_guard) String(global) Value(SSP_GLOBAL)
963 mstack-protector-guard-reg=
964 Target RejectNegative Joined Var(ix86_stack_protector_guard_reg_str)
965 Use the given base register for addressing the stack-protector guard.
967 TargetVariable
968 addr_space_t ix86_stack_protector_guard_reg = ADDR_SPACE_GENERIC
970 mstack-protector-guard-offset=
971 Target RejectNegative Joined Integer Var(ix86_stack_protector_guard_offset_str)
972 Use the given offset for addressing the stack-protector guard.
974 TargetVariable
975 HOST_WIDE_INT ix86_stack_protector_guard_offset = 0
977 mstack-protector-guard-symbol=
978 Target RejectNegative Joined Integer Var(ix86_stack_protector_guard_symbol_str)
979 Use the given symbol for addressing the stack-protector guard.
981 mmitigate-rop
982 Target Var(flag_mitigate_rop)
983 Attempt to avoid generating instruction sequences containing ret bytes.
985 mgeneral-regs-only
986 Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Var(ix86_target_flags) Save
987 Generate code which uses only the general registers.
989 mcet
990 Target Report Var(flag_cet) Init(0)
991 Support Control-flow  Enforcment Technology (CET) built-in functions
992 and code generation.
994 mibt
995 Target Report Mask(ISA_IBT) Var(ix86_isa_flags2) Save
996 Specifically enables an indirect branch tracking feature from Control-flow
997 Enforcment Technology (CET).
999 mshstk
1000 Target Report Mask(ISA_SHSTK) Var(ix86_isa_flags2) Save
1001 Specifically enables an shadow stack support feature from Control-flow
1002 Enforcment Technology (CET).
1004 mcet-switch
1005 Target Report Undocumented Var(flag_cet_switch) Init(0)
1006 Turn on CET instrumentation for switch statements, which use jump table and
1007 indirect jump.
1009 mforce-indirect-call
1010 Target Report Var(flag_force_indirect_call) Init(0)
1011 Make all function calls indirect.