IA MCU psABI support: GCC changes
[official-gcc.git] / gcc / config / i386 / i386.opt
blob042f3c1ab2002756a22f2f2b6a287e78a0f91a59
1 ; Options for the IA-32 and AMD64 ports of the compiler.
3 ; Copyright (C) 2005-2015 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 ; A mask of ix86_isa_flags that includes bit X if X was set or cleared
29 ; on the command line.
30 Variable
31 HOST_WIDE_INT ix86_isa_flags_explicit
33 TargetVariable
34 int recip_mask = RECIP_MASK_DEFAULT
36 Variable
37 int recip_mask_explicit
39 TargetSave
40 int x_recip_mask_explicit
42 ;; Definitions to add to the cl_target_option structure
43 ;; -march= processor
44 TargetSave
45 unsigned char arch
47 ;; -mtune= processor
48 TargetSave
49 unsigned char tune
51 ;; -march= processor-string
52 TargetSave
53 const char *x_ix86_arch_string
55 ;; -mtune= processor-string
56 TargetSave
57 const char *x_ix86_tune_string
59 ;; CPU schedule model
60 TargetSave
61 unsigned char schedule
63 ;; True if processor has SSE prefetch instruction.
64 TargetSave
65 unsigned char prefetch_sse
67 ;; branch cost
68 TargetSave
69 unsigned char branch_cost
71 ;; which flags were passed by the user
72 TargetSave
73 HOST_WIDE_INT x_ix86_isa_flags_explicit
75 ;; which flags were passed by the user
76 Variable
77 int ix86_target_flags_explicit
79 ;; which flags were passed by the user
80 TargetSave
81 HOST_WIDE_INT x_ix86_target_flags_explicit
83 ;; whether -mtune was not specified
84 TargetSave
85 unsigned char tune_defaulted
87 ;; whether -march was specified
88 TargetSave
89 unsigned char arch_specified
91 ;; -mcmodel= model
92 TargetSave
93 enum cmodel x_ix86_cmodel
95 ;; -mabi=
96 TargetSave
97 enum calling_abi x_ix86_abi
99 ;; -masm=
100 TargetSave
101 enum asm_dialect x_ix86_asm_dialect
103 ;; -mbranch-cost=
104 TargetSave
105 int x_ix86_branch_cost
107 ;; -mdump-tune-features= 
108 TargetSave
109 int x_ix86_dump_tunes
111 ;; -mstackrealign=
112 TargetSave
113 int x_ix86_force_align_arg_pointer
115 ;; -mforce-drap= 
116 TargetSave
117 int x_ix86_force_drap
119 ;; -mincoming-stack-boundary=
120 TargetSave
121 int x_ix86_incoming_stack_boundary_arg
123 ;; -maddress-mode=
124 TargetSave
125 enum pmode x_ix86_pmode
127 ;; -mpreferred-stack-boundary= 
128 TargetSave
129 int x_ix86_preferred_stack_boundary_arg
131 ;; -mrecip=
132 TargetSave
133 const char *x_ix86_recip_name
135 ;; -mregparm=
136 TargetSave
137 int x_ix86_regparm
139 ;; -mlarge-data-threshold=
140 TargetSave
141 int x_ix86_section_threshold
143 ;; -msse2avx=
144 TargetSave
145 int x_ix86_sse2avx
147 ;; -mstack-protector-guard=
148 TargetSave
149 enum stack_protector_guard x_ix86_stack_protector_guard
151 ;; -mstringop-strategy=
152 TargetSave
153 enum stringop_alg x_ix86_stringop_alg
155 ;; -mtls-dialect=
156 TargetSave
157 enum tls_dialect x_ix86_tls_dialect
159 ;; -mtune-ctrl=
160 TargetSave
161 const char *x_ix86_tune_ctrl_string
163 ;; -mmemcpy-strategy=
164 TargetSave
165 const char *x_ix86_tune_memcpy_strategy
167 ;; -mmemset-strategy=
168 TargetSave
169 const char *x_ix86_tune_memset_strategy
171 ;; -mno-default=
172 TargetSave
173 int x_ix86_tune_no_default
175 ;; -mveclibabi=
176 TargetSave
177 enum ix86_veclibabi x_ix86_veclibabi_type
179 ;; x86 options
180 m128bit-long-double
181 Target RejectNegative Report Mask(128BIT_LONG_DOUBLE) Save
182 sizeof(long double) is 16
184 m80387
185 Target Report Mask(80387) Save
186 Use hardware fp
188 m96bit-long-double
189 Target RejectNegative Report InverseMask(128BIT_LONG_DOUBLE) Save
190 sizeof(long double) is 12
192 mlong-double-80
193 Target Report RejectNegative Negative(mlong-double-64) InverseMask(LONG_DOUBLE_64) Save
194 Use 80-bit long double
196 mlong-double-64
197 Target Report RejectNegative Negative(mlong-double-128) Mask(LONG_DOUBLE_64) InverseMask(LONG_DOUBLE_128) Save
198 Use 64-bit long double
200 mlong-double-128
201 Target Report RejectNegative Negative(mlong-double-80) Mask(LONG_DOUBLE_128) InverseMask(LONG_DOUBLE_64) Save
202 Use 128-bit long double
204 maccumulate-outgoing-args
205 Target Report Mask(ACCUMULATE_OUTGOING_ARGS) Save
206 Reserve space for outgoing arguments in the function prologue
208 malign-double
209 Target Report Mask(ALIGN_DOUBLE) Save
210 Align some doubles on dword boundary
212 malign-functions=
213 Target RejectNegative Joined UInteger
214 Function starts are aligned to this power of 2
216 malign-jumps=
217 Target RejectNegative Joined UInteger
218 Jump targets are aligned to this power of 2
220 malign-loops=
221 Target RejectNegative Joined UInteger
222 Loop code aligned to this power of 2
224 malign-stringops
225 Target RejectNegative Report InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS) Save
226 Align destination of the string operations
228 malign-data=
229 Target RejectNegative Joined Var(ix86_align_data_type) Enum(ix86_align_data) Init(ix86_align_data_type_compat)
230 Use the given data alignment
232 Enum
233 Name(ix86_align_data) Type(enum ix86_align_data)
234 Known data alignment choices (for use with the -malign-data= option):
236 EnumValue
237 Enum(ix86_align_data) String(compat) Value(ix86_align_data_type_compat)
239 EnumValue
240 Enum(ix86_align_data) String(abi) Value(ix86_align_data_type_abi)
242 EnumValue
243 Enum(ix86_align_data) String(cacheline) Value(ix86_align_data_type_cacheline)
245 march=
246 Target RejectNegative Joined Var(ix86_arch_string)
247 Generate code for given CPU
249 masm=
250 Target RejectNegative Joined Enum(asm_dialect) Var(ix86_asm_dialect) Init(ASM_ATT)
251 Use given assembler dialect
253 Enum
254 Name(asm_dialect) Type(enum asm_dialect)
255 Known assembler dialects (for use with the -masm-dialect= option):
257 EnumValue
258 Enum(asm_dialect) String(intel) Value(ASM_INTEL)
260 EnumValue
261 Enum(asm_dialect) String(att) Value(ASM_ATT)
263 mbranch-cost=
264 Target RejectNegative Joined UInteger Var(ix86_branch_cost)
265 Branches are this expensive (1-5, arbitrary units)
267 mlarge-data-threshold=
268 Target RejectNegative Joined UInteger Var(ix86_section_threshold) Init(DEFAULT_LARGE_SECTION_THRESHOLD)
269 Data greater than given threshold will go into .ldata section in x86-64 medium model
271 mcmodel=
272 Target RejectNegative Joined Enum(cmodel) Var(ix86_cmodel) Init(CM_32)
273 Use given x86-64 code model
275 Enum
276 Name(cmodel) Type(enum cmodel)
277 Known code models (for use with the -mcmodel= option):
279 EnumValue
280 Enum(cmodel) String(small) Value(CM_SMALL)
282 EnumValue
283 Enum(cmodel) String(medium) Value(CM_MEDIUM)
285 EnumValue
286 Enum(cmodel) String(large) Value(CM_LARGE)
288 EnumValue
289 Enum(cmodel) String(32) Value(CM_32)
291 EnumValue
292 Enum(cmodel) String(kernel) Value(CM_KERNEL)
294 maddress-mode=
295 Target RejectNegative Joined Enum(pmode) Var(ix86_pmode) Init(PMODE_SI)
296 Use given address mode
298 Enum
299 Name(pmode) Type(enum pmode)
300 Known address mode (for use with the -maddress-mode= option):
302 EnumValue
303 Enum(pmode) String(short) Value(PMODE_SI)
305 EnumValue
306 Enum(pmode) String(long) Value(PMODE_DI)
308 mcpu=
309 Target RejectNegative Joined Undocumented Alias(mtune=) Warn(%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead)
311 mfancy-math-387
312 Target RejectNegative Report InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387) Save
313 Generate sin, cos, sqrt for FPU
315 mforce-drap
316 Target Report Var(ix86_force_drap)
317 Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack
319 mfp-ret-in-387
320 Target Report Mask(FLOAT_RETURNS) Save
321 Return values of functions in FPU registers
323 mfpmath=
324 Target RejectNegative Joined Var(ix86_fpmath) Enum(fpmath_unit) Init(FPMATH_387) Save
325 Generate floating point mathematics using given instruction set
327 Enum
328 Name(fpmath_unit) Type(enum fpmath_unit)
329 Valid arguments to -mfpmath=:
331 EnumValue
332 Enum(fpmath_unit) String(387) Value(FPMATH_387)
334 EnumValue
335 Enum(fpmath_unit) String(sse) Value(FPMATH_SSE)
337 EnumValue
338 Enum(fpmath_unit) String(387,sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
340 EnumValue
341 Enum(fpmath_unit) String(387+sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
343 EnumValue
344 Enum(fpmath_unit) String(sse,387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
346 EnumValue
347 Enum(fpmath_unit) String(sse+387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
349 EnumValue
350 Enum(fpmath_unit) String(both) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
352 mhard-float
353 Target RejectNegative Mask(80387) Save
354 Use hardware fp
356 mieee-fp
357 Target Report Mask(IEEE_FP) Save
358 Use IEEE math for fp comparisons
360 minline-all-stringops
361 Target Report Mask(INLINE_ALL_STRINGOPS) Save
362 Inline all known string operations
364 minline-stringops-dynamically
365 Target Report Mask(INLINE_STRINGOPS_DYNAMICALLY) Save
366 Inline memset/memcpy string operations, but perform inline version only for small blocks
368 mintel-syntax
369 Target Undocumented Alias(masm=, intel, att) Warn(%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead)
370 ;; Deprecated
372 mms-bitfields
373 Target Report Mask(MS_BITFIELD_LAYOUT) Save
374 Use native (MS) bitfield layout
376 mno-align-stringops
377 Target RejectNegative Report Mask(NO_ALIGN_STRINGOPS) Undocumented Save
379 mno-fancy-math-387
380 Target RejectNegative Report Mask(NO_FANCY_MATH_387) Undocumented Save
382 mno-push-args
383 Target RejectNegative Report Mask(NO_PUSH_ARGS) Undocumented Save
385 mno-red-zone
386 Target RejectNegative Report Mask(NO_RED_ZONE) Undocumented Save
388 momit-leaf-frame-pointer
389 Target Report Mask(OMIT_LEAF_FRAME_POINTER) Save
390 Omit the frame pointer in leaf functions
392 mpc32
393 Target RejectNegative Report
394 Set 80387 floating-point precision to 32-bit
396 mpc64
397 Target RejectNegative Report
398 Set 80387 floating-point precision to 64-bit
400 mpc80
401 Target RejectNegative Report
402 Set 80387 floating-point precision to 80-bit
404 mpreferred-stack-boundary=
405 Target RejectNegative Joined UInteger Var(ix86_preferred_stack_boundary_arg)
406 Attempt to keep stack aligned to this power of 2
408 mincoming-stack-boundary=
409 Target RejectNegative Joined UInteger Var(ix86_incoming_stack_boundary_arg)
410 Assume incoming stack aligned to this power of 2
412 mpush-args
413 Target Report InverseMask(NO_PUSH_ARGS, PUSH_ARGS) Save
414 Use push instructions to save outgoing arguments
416 mred-zone
417 Target RejectNegative Report InverseMask(NO_RED_ZONE, RED_ZONE) Save
418 Use red-zone in the x86-64 code
420 mregparm=
421 Target RejectNegative Joined UInteger Var(ix86_regparm)
422 Number of registers used to pass integer arguments
424 mrtd
425 Target Report Mask(RTD) Save
426 Alternate calling convention
428 msoft-float
429 Target InverseMask(80387) Save
430 Do not use hardware fp
432 msseregparm
433 Target RejectNegative Mask(SSEREGPARM) Save
434 Use SSE register passing conventions for SF and DF mode
436 mstackrealign
437 Target Report Var(ix86_force_align_arg_pointer) Init(-1)
438 Realign stack in prologue
440 mstack-arg-probe
441 Target Report Mask(STACK_PROBE) Save
442 Enable stack probing
444 mmemcpy-strategy=
445 Target RejectNegative Joined Var(ix86_tune_memcpy_strategy)
446 Specify memcpy expansion strategy when expected size is known
448 mmemset-strategy=
449 Target RejectNegative Joined Var(ix86_tune_memset_strategy)
450 Specify memset expansion strategy when expected size is known
452 mstringop-strategy=
453 Target RejectNegative Joined Enum(stringop_alg) Var(ix86_stringop_alg) Init(no_stringop)
454 Chose strategy to generate stringop using
456 Enum
457 Name(stringop_alg) Type(enum stringop_alg)
458 Valid arguments to -mstringop-strategy=:
460 EnumValue
461 Enum(stringop_alg) String(rep_byte) Value(rep_prefix_1_byte)
463 EnumValue
464 Enum(stringop_alg) String(libcall) Value(libcall)
466 EnumValue
467 Enum(stringop_alg) String(rep_4byte) Value(rep_prefix_4_byte)
469 EnumValue
470 Enum(stringop_alg) String(rep_8byte) Value(rep_prefix_8_byte)
472 EnumValue
473 Enum(stringop_alg) String(byte_loop) Value(loop_1_byte)
475 EnumValue
476 Enum(stringop_alg) String(loop) Value(loop)
478 EnumValue
479 Enum(stringop_alg) String(unrolled_loop) Value(unrolled_loop)
481 EnumValue
482 Enum(stringop_alg) String(vector_loop) Value(vector_loop)
484 mtls-dialect=
485 Target RejectNegative Joined Var(ix86_tls_dialect) Enum(tls_dialect) Init(TLS_DIALECT_GNU)
486 Use given thread-local storage dialect
488 Enum
489 Name(tls_dialect) Type(enum tls_dialect)
490 Known TLS dialects (for use with the -mtls-dialect= option):
492 EnumValue
493 Enum(tls_dialect) String(gnu) Value(TLS_DIALECT_GNU)
495 EnumValue
496 Enum(tls_dialect) String(gnu2) Value(TLS_DIALECT_GNU2)
498 mtls-direct-seg-refs
499 Target Report Mask(TLS_DIRECT_SEG_REFS)
500 Use direct references against %gs when accessing tls data
502 mtune=
503 Target RejectNegative Joined Var(ix86_tune_string)
504 Schedule code for given CPU
506 mtune-ctrl=
507 Target RejectNegative Joined Var(ix86_tune_ctrl_string)
508 Fine grain control of tune features
510 mno-default
511 Target RejectNegative Var(ix86_tune_no_default) Init(0)
512 Clear all tune features
514 mdump-tune-features
515 Target RejectNegative Var(ix86_dump_tunes) Init(0)
517 miamcu
518 Target Report Mask(IAMCU)
519 Generate code that conforms to Intel MCU psABI
521 mabi=
522 Target RejectNegative Joined Var(ix86_abi) Enum(calling_abi) Init(SYSV_ABI)
523 Generate code that conforms to the given ABI
525 Enum
526 Name(calling_abi) Type(enum calling_abi)
527 Known ABIs (for use with the -mabi= option):
529 EnumValue
530 Enum(calling_abi) String(sysv) Value(SYSV_ABI)
532 EnumValue
533 Enum(calling_abi) String(ms) Value(MS_ABI)
535 mveclibabi=
536 Target RejectNegative Joined Var(ix86_veclibabi_type) Enum(ix86_veclibabi) Init(ix86_veclibabi_type_none)
537 Vector library ABI to use
539 Enum
540 Name(ix86_veclibabi) Type(enum ix86_veclibabi)
541 Known vectorization library ABIs (for use with the -mveclibabi= option):
543 EnumValue
544 Enum(ix86_veclibabi) String(svml) Value(ix86_veclibabi_type_svml)
546 EnumValue
547 Enum(ix86_veclibabi) String(acml) Value(ix86_veclibabi_type_acml)
549 mvect8-ret-in-mem
550 Target Report Mask(VECT8_RETURNS) Save
551 Return 8-byte vectors in memory
553 mrecip
554 Target Report Mask(RECIP) Save
555 Generate reciprocals instead of divss and sqrtss.
557 mrecip=
558 Target Report RejectNegative Joined Var(ix86_recip_name)
559 Control generation of reciprocal estimates.
561 mcld
562 Target Report Mask(CLD) Save
563 Generate cld instruction in the function prologue.
565 mvzeroupper
566 Target Report Mask(VZEROUPPER) Save
567 Generate vzeroupper instruction before a transfer of control flow out of
568 the function.
570 mdispatch-scheduler
571 Target RejectNegative Var(flag_dispatch_scheduler)
572 Do dispatch scheduling if processor is bdver1 or bdver2 or bdver3 or bdver4 and Haifa scheduling
573 is selected.
575 mprefer-avx128
576 Target Report Mask(PREFER_AVX128) SAVE
577 Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer.
579 ;; ISA support
582 Target RejectNegative Negative(m64) Report InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
583 Generate 32bit i386 code
586 Target RejectNegative Negative(mx32) Report Mask(ABI_64) Var(ix86_isa_flags) Save
587 Generate 64bit x86-64 code
589 mx32
590 Target RejectNegative Negative(m16) Report Mask(ABI_X32) Var(ix86_isa_flags) Save
591 Generate 32bit x86-64 code
594 Target RejectNegative Negative(m32) Report Mask(CODE16) InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
595 Generate 16bit i386 code
597 mmmx
598 Target Report Mask(ISA_MMX) Var(ix86_isa_flags) Save
599 Support MMX built-in functions
601 m3dnow
602 Target Report Mask(ISA_3DNOW) Var(ix86_isa_flags) Save
603 Support 3DNow! built-in functions
605 m3dnowa
606 Target Undocumented Mask(ISA_3DNOW_A) Var(ix86_isa_flags) Save
607 Support Athlon 3Dnow! built-in functions
609 msse
610 Target Report Mask(ISA_SSE) Var(ix86_isa_flags) Save
611 Support MMX and SSE built-in functions and code generation
613 msse2
614 Target Report Mask(ISA_SSE2) Var(ix86_isa_flags) Save
615 Support MMX, SSE and SSE2 built-in functions and code generation
617 msse3
618 Target Report Mask(ISA_SSE3) Var(ix86_isa_flags) Save
619 Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation
621 mssse3
622 Target Report Mask(ISA_SSSE3) Var(ix86_isa_flags) Save
623 Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation
625 msse4.1
626 Target Report Mask(ISA_SSE4_1) Var(ix86_isa_flags) Save
627 Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation
629 msse4.2
630 Target Report Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
631 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation
633 msse4
634 Target RejectNegative Report Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
635 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation
637 mno-sse4
638 Target RejectNegative Report InverseMask(ISA_SSE4_1) Var(ix86_isa_flags) Save
639 Do not support SSE4.1 and SSE4.2 built-in functions and code generation
641 msse5
642 Target Undocumented Alias(mavx) Warn(%<-msse5%> was removed)
643 ;; Deprecated
645 mavx
646 Target Report Mask(ISA_AVX) Var(ix86_isa_flags) Save
647 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation
649 mavx2
650 Target Report Mask(ISA_AVX2) Var(ix86_isa_flags) Save
651 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation
653 mavx512f
654 Target Report Mask(ISA_AVX512F) Var(ix86_isa_flags) Save
655 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation
657 mavx512pf
658 Target Report Mask(ISA_AVX512PF) Var(ix86_isa_flags) Save
659 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generation
661 mavx512er
662 Target Report Mask(ISA_AVX512ER) Var(ix86_isa_flags) Save
663 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generation
665 mavx512cd
666 Target Report Mask(ISA_AVX512CD) Var(ix86_isa_flags) Save
667 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation
669 mavx512dq
670 Target Report Mask(ISA_AVX512DQ) Var(ix86_isa_flags) Save
671 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation
673 mavx512bw
674 Target Report Mask(ISA_AVX512BW) Var(ix86_isa_flags) Save
675 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-in functions and code generation
677 mavx512vl
678 Target Report Mask(ISA_AVX512VL) Var(ix86_isa_flags) Save
679 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-in functions and code generation
681 mavx512ifma
682 Target Report Mask(ISA_AVX512IFMA) Var(ix86_isa_flags) Save
683 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation
685 mavx512vbmi
686 Target Report Mask(ISA_AVX512VBMI) Var(ix86_isa_flags) Save
687 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation
689 mfma
690 Target Report Mask(ISA_FMA) Var(ix86_isa_flags) Save
691 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation
693 msse4a
694 Target Report Mask(ISA_SSE4A) Var(ix86_isa_flags) Save
695 Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation
697 mfma4
698 Target Report Mask(ISA_FMA4) Var(ix86_isa_flags) Save
699 Support FMA4 built-in functions and code generation 
701 mxop
702 Target Report Mask(ISA_XOP) Var(ix86_isa_flags) Save
703 Support XOP built-in functions and code generation 
705 mlwp
706 Target Report Mask(ISA_LWP) Var(ix86_isa_flags) Save
707 Support LWP built-in functions and code generation 
709 mabm
710 Target Report Mask(ISA_ABM) Var(ix86_isa_flags) Save
711 Support code generation of Advanced Bit Manipulation (ABM) instructions.
713 mpopcnt
714 Target Report Mask(ISA_POPCNT) Var(ix86_isa_flags) Save
715 Support code generation of popcnt instruction.
717 mbmi
718 Target Report Mask(ISA_BMI) Var(ix86_isa_flags) Save
719 Support BMI built-in functions and code generation
721 mbmi2
722 Target Report Mask(ISA_BMI2) Var(ix86_isa_flags) Save
723 Support BMI2 built-in functions and code generation
725 mlzcnt
726 Target Report Mask(ISA_LZCNT) Var(ix86_isa_flags) Save
727 Support LZCNT built-in function and code generation
729 mhle
730 Target Report Mask(ISA_HLE) Var(ix86_isa_flags) Save
731 Support Hardware Lock Elision prefixes
733 mrdseed
734 Target Report Mask(ISA_RDSEED) Var(ix86_isa_flags) Save
735 Support RDSEED instruction
737 mprfchw
738 Target Report Mask(ISA_PRFCHW) Var(ix86_isa_flags) Save
739 Support PREFETCHW instruction
741 madx
742 Target Report Mask(ISA_ADX) Var(ix86_isa_flags) Save
743 Support flag-preserving add-carry instructions
745 mclflushopt
746 Target Report Mask(ISA_CLFLUSHOPT) Var(ix86_isa_flags) Save
747 Support CLFLUSHOPT instructions
749 mclwb
750 Target Report Mask(ISA_CLWB) Var(ix86_isa_flags) Save
751 Support CLWB instruction
753 mpcommit
754 Target Report Mask(ISA_PCOMMIT) Var(ix86_isa_flags) Save
755 Support PCOMMIT instruction
757 mfxsr
758 Target Report Mask(ISA_FXSR) Var(ix86_isa_flags) Save
759 Support FXSAVE and FXRSTOR instructions
761 mxsave
762 Target Report Mask(ISA_XSAVE) Var(ix86_isa_flags) Save
763 Support XSAVE and XRSTOR instructions
765 mxsaveopt
766 Target Report Mask(ISA_XSAVEOPT) Var(ix86_isa_flags) Save
767 Support XSAVEOPT instruction
769 mxsavec
770 Target Report Mask(ISA_XSAVEC) Var(ix86_isa_flags) Save
771 Support XSAVEC instructions
773 mxsaves
774 Target Report Mask(ISA_XSAVES) Var(ix86_isa_flags) Save
775 Support XSAVES and XRSTORS instructions
777 mtbm
778 Target Report Mask(ISA_TBM) Var(ix86_isa_flags) Save
779 Support TBM built-in functions and code generation
781 mcx16
782 Target Report Mask(ISA_CX16) Var(ix86_isa_flags) Save
783 Support code generation of cmpxchg16b instruction.
785 msahf
786 Target Report Mask(ISA_SAHF) Var(ix86_isa_flags) Save
787 Support code generation of sahf instruction in 64bit x86-64 code.
789 mmovbe
790 Target Report Mask(ISA_MOVBE) Var(ix86_isa_flags) Save
791 Support code generation of movbe instruction.
793 mcrc32
794 Target Report Mask(ISA_CRC32) Var(ix86_isa_flags) Save
795 Support code generation of crc32 instruction.
797 maes
798 Target Report Mask(ISA_AES) Var(ix86_isa_flags) Save
799 Support AES built-in functions and code generation
801 msha
802 Target Report Mask(ISA_SHA) Var(ix86_isa_flags) Save
803 Support SHA1 and SHA256 built-in functions and code generation
805 mpclmul
806 Target Report Mask(ISA_PCLMUL) Var(ix86_isa_flags) Save
807 Support PCLMUL built-in functions and code generation
809 msse2avx
810 Target Report Var(ix86_sse2avx)
811 Encode SSE instructions with VEX prefix
813 mfsgsbase
814 Target Report Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
815 Support FSGSBASE built-in functions and code generation
817 mrdrnd
818 Target Report Mask(ISA_RDRND) Var(ix86_isa_flags) Save
819 Support RDRND built-in functions and code generation
821 mf16c
822 Target Report Mask(ISA_F16C) Var(ix86_isa_flags) Save
823 Support F16C built-in functions and code generation
825 mprefetchwt1
826 Target Report Mask(ISA_PREFETCHWT1) Var(ix86_isa_flags) Save
827 Support PREFETCHWT1 built-in functions and code generation
829 mfentry
830 Target Report Var(flag_fentry) Init(-1)
831 Emit profiling counter call at function entry before prologue.
833 mrecord-mcount
834 Target Report Var(flag_record_mcount) Init(0)
835 Generate __mcount_loc section with all mcount or __fentry__ calls.
837 mnop-mcount
838 Target Report Var(flag_nop_mcount) Init(0)
839 Generate mcount/__fentry__ calls as nops. To activate they need to be
840 patched in.
842 mskip-rax-setup
843 Target Report Var(flag_skip_rax_setup) Init(0)
844 Skip setting up RAX register when passing variable arguments.
846 m8bit-idiv
847 Target Report Mask(USE_8BIT_IDIV) Save
848 Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check
850 mavx256-split-unaligned-load
851 Target Report Mask(AVX256_SPLIT_UNALIGNED_LOAD) Save
852 Split 32-byte AVX unaligned load
854 mavx256-split-unaligned-store
855 Target Report Mask(AVX256_SPLIT_UNALIGNED_STORE) Save
856 Split 32-byte AVX unaligned store
858 mrtm
859 Target Report Mask(ISA_RTM) Var(ix86_isa_flags) Save
860 Support RTM built-in functions and code generation
862 mmpx
863 Target Report Mask(ISA_MPX) Var(ix86_isa_flags) Save
864 Support MPX code generation
866 mmwaitx
867 Target Report Mask(ISA_MWAITX) Var(ix86_isa_flags) Save
868 Support MWAITX and MONITORX built-in functions and code generation
870 mstack-protector-guard=
871 Target RejectNegative Joined Enum(stack_protector_guard) Var(ix86_stack_protector_guard) Init(SSP_TLS)
872 Use given stack-protector guard
874 Enum
875 Name(stack_protector_guard) Type(enum stack_protector_guard)
876 Known stack protector guard (for use with the -mstack-protector-guard= option):
878 EnumValue
879 Enum(stack_protector_guard) String(tls) Value(SSP_TLS)
881 EnumValue
882 Enum(stack_protector_guard) String(global) Value(SSP_GLOBAL)