Prepare for SDCC 4.5.0 release.
[sdcc.git] / sdcc / support / cpp / gcc / config / dummy / dummy.opt
blobe2e2117c17ac1c0b73d881f737865bfafd2dcd7a
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
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/dummy/dummy-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 ;; 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.
55 TargetVariable
56 enum excess_precision ix86_excess_precision = EXCESS_PRECISION_DEFAULT
58 ;; Similarly for flag_unsafe_math_optimizations.
59 TargetVariable
60 bool ix86_unsafe_math_optimizations = false
62 ;; CPU schedule model
63 TargetSave
64 unsigned char schedule
66 ;; True if processor has SSE prefetch instruction.
67 TargetSave
68 unsigned char prefetch_sse
70 ;; branch cost
71 TargetSave
72 unsigned char branch_cost
74 ;; which flags were passed by the user
75 TargetSave
76 HOST_WIDE_INT x_ix86_isa_flags2_explicit
78 ;; which flags were passed by the user
79 TargetSave
80 HOST_WIDE_INT x_ix86_isa_flags_explicit
82 ;; -mcmodel= model
83 TargetVariable
84 enum cmodel ix86_cmodel = CM_32
86 ;; -mabi=
87 TargetSave
88 enum calling_abi x_ix86_abi
90 ;; -masm=
91 TargetSave
92 enum asm_dialect x_ix86_asm_dialect
94 ;; -mbranch-cost=
95 TargetSave
96 int x_ix86_branch_cost
98 ;; -mdump-tune-features=
99 TargetSave
100 int x_ix86_dump_tunes
102 ;; -mstackrealign=
103 TargetSave
104 int x_ix86_force_align_arg_pointer
106 ;; -mforce-drap=
107 TargetSave
108 int x_ix86_force_drap
110 ;; -mincoming-stack-boundary=
111 TargetVariable
112 int ix86_incoming_stack_boundary_arg
114 ;; -maddress-mode=
115 TargetVariable
116 enum pmode ix86_pmode = PMODE_SI
118 ;; -mpreferred-stack-boundary=
119 TargetVariable
120 int ix86_preferred_stack_boundary_arg
122 ;; -mrecip=
123 TargetSave
124 const char *x_ix86_recip_name
126 ;; -mregparm=
127 TargetVariable
128 int ix86_regparm
130 ;; -mlarge-data-threshold=
131 TargetSave
132 int x_ix86_section_threshold
134 ;; -msse2avx=
135 TargetSave
136 int x_ix86_sse2avx
138 ;; -mstack-protector-guard=
139 TargetSave
140 enum stack_protector_guard x_ix86_stack_protector_guard
142 ;; -mstringop-strategy=
143 TargetSave
144 enum stringop_alg x_ix86_stringop_alg
146 ;; -mtls-dialect=
147 TargetSave
148 enum tls_dialect x_ix86_tls_dialect
150 ;; -mmemcpy-strategy=
151 TargetSave
152 const char *x_ix86_tune_memcpy_strategy
154 ;; -mmemset-strategy=
155 TargetSave
156 const char *x_ix86_tune_memset_strategy
158 ;; -mno-default=
159 TargetSave
160 int x_ix86_tune_no_default
162 ;; -mveclibabi=
163 TargetVariable
164 enum ix86_veclibabi ix86_veclibabi_type = ix86_veclibabi_type_none
166 ;; x86 options
167 m128bit-long-double
168 Target RejectNegative Mask(128BIT_LONG_DOUBLE) Save
169 sizeof(long double) is 16.
171 m80387
172 Target Mask(80387) Save
173 Use hardware fp.
175 m96bit-long-double
176 Target RejectNegative InverseMask(128BIT_LONG_DOUBLE) Save
177 sizeof(long double) is 12.
179 mlong-double-80
180 Target RejectNegative Negative(mlong-double-64) InverseMask(LONG_DOUBLE_64) Save
181 Use 80-bit long double.
183 mlong-double-64
184 Target RejectNegative Negative(mlong-double-128) Mask(LONG_DOUBLE_64) InverseMask(LONG_DOUBLE_128) Save
185 Use 64-bit long double.
187 mlong-double-128
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.
195 malign-double
196 Target Mask(ALIGN_DOUBLE) Save
197 Align some doubles on dword boundary.
199 malign-functions=
200 Target RejectNegative Joined UInteger
201 Function starts are aligned to this power of 2.
203 malign-jumps=
204 Target RejectNegative Joined UInteger
205 Jump targets are aligned to this power of 2.
207 malign-loops=
208 Target RejectNegative Joined UInteger
209 Loop code aligned to this power of 2.
211 malign-stringops
212 Target RejectNegative InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS) Save
213 Align destination of the string operations.
215 malign-data=
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.
219 Enum
220 Name(ix86_align_data) Type(enum ix86_align_data)
221 Known data alignment choices (for use with the -malign-data= option):
223 EnumValue
224 Enum(ix86_align_data) String(compat) Value(ix86_align_data_type_compat)
226 EnumValue
227 Enum(ix86_align_data) String(abi) Value(ix86_align_data_type_abi)
229 EnumValue
230 Enum(ix86_align_data) String(cacheline) Value(ix86_align_data_type_cacheline)
232 masm=
233 Target RejectNegative Joined Enum(asm_dialect) Var(ix86_asm_dialect) Init(ASM_ATT)
234 Use given assembler dialect.
236 Enum
237 Name(asm_dialect) Type(enum asm_dialect)
238 Known assembler dialects (for use with the -masm= option):
240 EnumValue
241 Enum(asm_dialect) String(intel) Value(ASM_INTEL)
243 EnumValue
244 Enum(asm_dialect) String(att) Value(ASM_ATT)
246 mbranch-cost=
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.
254 mcmodel=
255 Target RejectNegative Joined Enum(cmodel) Var(ix86_cmodel) Init(CM_32)
256 Use given x86-64 code model.
258 Enum
259 Name(cmodel) Type(enum cmodel)
260 Known code models (for use with the -mcmodel= option):
262 EnumValue
263 Enum(cmodel) String(small) Value(CM_SMALL)
265 EnumValue
266 Enum(cmodel) String(medium) Value(CM_MEDIUM)
268 EnumValue
269 Enum(cmodel) String(large) Value(CM_LARGE)
271 EnumValue
272 Enum(cmodel) String(32) Value(CM_32)
274 EnumValue
275 Enum(cmodel) String(kernel) Value(CM_KERNEL)
277 maddress-mode=
278 Target RejectNegative Joined Enum(pmode) Var(ix86_pmode) Init(PMODE_SI)
279 Use given address mode.
281 Enum
282 Name(pmode) Type(enum pmode)
283 Known address mode (for use with the -maddress-mode= option):
285 EnumValue
286 Enum(pmode) String(short) Value(PMODE_SI)
288 EnumValue
289 Enum(pmode) String(long) Value(PMODE_DI)
291 mfancy-math-387
292 Target RejectNegative InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387) Save
293 Generate sin, cos, sqrt for FPU.
295 mforce-drap
296 Target Var(ix86_force_drap)
297 Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack.
299 mfp-ret-in-387
300 Target Mask(FLOAT_RETURNS) Save
301 Return values of functions in FPU registers.
303 mfpmath=
304 Target RejectNegative Joined Var(ix86_fpmath) Enum(fpmath_unit) Init(FPMATH_387) Save
305 Generate floating point mathematics using given instruction set.
307 Enum
308 Name(fpmath_unit) Type(enum fpmath_unit)
309 Valid arguments to -mfpmath=:
311 EnumValue
312 Enum(fpmath_unit) String(387) Value(FPMATH_387)
314 EnumValue
315 Enum(fpmath_unit) String(sse) Value(FPMATH_SSE)
317 EnumValue
318 Enum(fpmath_unit) String(387,sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
320 EnumValue
321 Enum(fpmath_unit) String(387+sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
323 EnumValue
324 Enum(fpmath_unit) String(sse,387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
326 EnumValue
327 Enum(fpmath_unit) String(sse+387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
329 EnumValue
330 Enum(fpmath_unit) String(both) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
332 mhard-float
333 Target RejectNegative Mask(80387) Save
334 Use hardware fp.
336 mieee-fp
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.
348 mintel-syntax
349 Target Undocumented Alias(masm=, intel, att) Warn(%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead)
351 mms-bitfields
352 Target Mask(MS_BITFIELD_LAYOUT) Save
353 Use native (MS) bitfield layout.
355 mno-align-stringops
356 Target RejectNegative Mask(NO_ALIGN_STRINGOPS) Undocumented Save
358 mno-fancy-math-387
359 Target RejectNegative Mask(NO_FANCY_MATH_387) Undocumented Save
361 mno-push-args
362 Target RejectNegative Mask(NO_PUSH_ARGS) Undocumented Save
364 mno-red-zone
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.
371 mrelax-cmpxchg-loop
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.
375 mpc32
376 Target RejectNegative
377 Set 80387 floating-point precision to 32-bit.
379 mpc64
380 Target RejectNegative
381 Set 80387 floating-point precision to 64-bit.
383 mpc80
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.
395 mpush-args
396 Target InverseMask(NO_PUSH_ARGS, PUSH_ARGS) Save
397 Use push instructions to save outgoing arguments.
399 mred-zone
400 Target RejectNegative InverseMask(NO_RED_ZONE, RED_ZONE) Save
401 Use red-zone in the x86-64 code.
403 mregparm=
404 Target RejectNegative Joined UInteger Var(ix86_regparm)
405 Number of registers used to pass integer arguments.
407 mrtd
408 Target Mask(RTD) Save
409 Alternate calling convention.
411 msoft-float
412 Target InverseMask(80387) Save
413 Do not use hardware fp.
415 msseregparm
416 Target RejectNegative Mask(SSEREGPARM) Save
417 Use SSE register passing conventions for SF and DF mode.
419 mstackrealign
420 Target Var(ix86_force_align_arg_pointer)
421 Realign stack in prologue.
423 mstack-arg-probe
424 Target Mask(STACK_PROBE) Save
425 Enable stack probing.
427 mmemcpy-strategy=
428 Target RejectNegative Joined Var(ix86_tune_memcpy_strategy)
429 Specify memcpy expansion strategy when expected size is known.
431 mmemset-strategy=
432 Target RejectNegative Joined Var(ix86_tune_memset_strategy)
433 Specify memset expansion strategy when expected size is known.
435 Enum
436 Name(stringop_alg) Type(enum stringop_alg)
437 Valid arguments to -mstringop-strategy=:
439 mtls-dialect=
440 Target RejectNegative Joined Var(ix86_tls_dialect) Enum(tls_dialect) Init(TLS_DIALECT_GNU)
441 Use given thread-local storage dialect.
443 Enum
444 Name(tls_dialect) Type(enum tls_dialect)
445 Known TLS dialects (for use with the -mtls-dialect= option):
447 EnumValue
448 Enum(tls_dialect) String(gnu) Value(TLS_DIALECT_GNU)
450 EnumValue
451 Enum(tls_dialect) String(gnu2) Value(TLS_DIALECT_GNU2)
453 mtls-direct-seg-refs
454 Target Mask(TLS_DIRECT_SEG_REFS)
455 Use direct references against %gs when accessing tls data.
457 mno-default
458 Target RejectNegative Var(ix86_tune_no_default)
459 Clear all tune features.
461 mdump-tune-features
462 Target RejectNegative Var(ix86_dump_tunes)
464 miamcu
465 Target Mask(IAMCU)
466 Generate code that conforms to Intel MCU psABI.
468 mabi=
469 Target RejectNegative Joined Var(ix86_abi) Enum(calling_abi) Init(SYSV_ABI)
470 Generate code that conforms to the given ABI.
472 Enum
473 Name(calling_abi) Type(enum calling_abi)
474 Known ABIs (for use with the -mabi= option):
476 EnumValue
477 Enum(calling_abi) String(sysv) Value(SYSV_ABI)
479 EnumValue
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.
486 mveclibabi=
487 Target RejectNegative Joined Var(ix86_veclibabi_type) Enum(ix86_veclibabi) Init(ix86_veclibabi_type_none)
488 Vector library ABI to use.
490 Enum
491 Name(ix86_veclibabi) Type(enum ix86_veclibabi)
492 Known vectorization library ABIs (for use with the -mveclibabi= option):
494 EnumValue
495 Enum(ix86_veclibabi) String(svml) Value(ix86_veclibabi_type_svml)
497 EnumValue
498 Enum(ix86_veclibabi) String(acml) Value(ix86_veclibabi_type_acml)
500 mvect8-ret-in-mem
501 Target Mask(VECT8_RETURNS) Save
502 Return 8-byte vectors in memory.
504 mrecip
505 Target Mask(RECIP) Save
506 Generate reciprocals instead of divss and sqrtss.
508 mrecip=
509 Target RejectNegative Joined Var(ix86_recip_name)
510 Control generation of reciprocal estimates.
512 mcld
513 Target Mask(CLD) Save
514 Generate cld instruction in the function prologue.
516 mvzeroupper
517 Target Mask(VZEROUPPER) Save
518 Generate vzeroupper instruction before a transfer of control flow out of
519 the function.
521 mstv
522 Target Mask(STV) Save
523 Disable Scalar to Vector optimization pass transforming 64-bit integer
524 computations into a vector ones.
526 mdispatch-scheduler
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.
531 mprefer-avx128
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.
539 Enum
540 Name(prefer_vector_width) Type(enum prefer_vector_width)
541 Known preferred register vector length (to use with the -mprefer-vector-width= option):
543 EnumValue
544 Enum(prefer_vector_width) String(none) Value(PVW_NONE)
546 EnumValue
547 Enum(prefer_vector_width) String(128) Value(PVW_AVX128)
549 EnumValue
550 Enum(prefer_vector_width) String(256) Value(PVW_AVX256)
552 EnumValue
553 Enum(prefer_vector_width) String(512) Value(PVW_AVX512)
555 mmove-max=
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.
559 mstore-max=
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.
563 ;; ISA support
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.
573 mx32
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.
581 mmmx
582 Target Mask(ISA_MMX) Var(ix86_isa_flags) Save
583 Support MMX built-in functions.
585 m3dnow
586 Target Mask(ISA_3DNOW) Var(ix86_isa_flags) Save
587 Support 3DNow! built-in functions.
589 m3dnowa
590 Target Mask(ISA_3DNOW_A) Var(ix86_isa_flags) Save
591 Support Athlon 3Dnow! built-in functions.
593 msse
594 Target Mask(ISA_SSE) Var(ix86_isa_flags) Save
595 Support MMX and SSE built-in functions and code generation.
597 msse2
598 Target Mask(ISA_SSE2) Var(ix86_isa_flags) Save
599 Support MMX, SSE and SSE2 built-in functions and code generation.
601 msse3
602 Target Mask(ISA_SSE3) Var(ix86_isa_flags) Save
603 Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation.
605 mssse3
606 Target Mask(ISA_SSSE3) Var(ix86_isa_flags) Save
607 Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation.
609 msse4.1
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.
613 msse4.2
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.
617 msse4
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.
621 mno-sse4
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.
625 msse5
626 Target Undocumented Alias(mavx) Warn(%<-msse5%> was removed)
627 ;; Deprecated
629 mavx
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.
633 mavx2
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.
637 mavx512f
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.
641 mavx512pf
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.
645 mavx512er
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.
649 mavx512cd
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.
653 mavx512dq
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.
657 mavx512bw
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.
661 mavx512vl
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.
665 mavx512ifma
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.
669 mavx512vbmi
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.
673 mavx5124fmaps
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.
677 mavx5124vnniw
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.
681 mavx512vpopcntdq
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.
685 mavx512vbmi2
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.
689 mavx512vnni
690 Target Mask(ISA_AVX512VNNI) Var(ix86_isa_flags) Save
691 Support AVX512VNNI built-in functions and code generation.
693 mavx512bitalg
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.
697 mavx512vp2intersect
698 Target Mask(ISA2_AVX512VP2INTERSECT) Var(ix86_isa_flags2) Save
699 Support AVX512VP2INTERSECT built-in functions and code generation.
701 mfma
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.
705 msse4a
706 Target Mask(ISA_SSE4A) Var(ix86_isa_flags) Save
707 Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation.
709 mfma4
710 Target Mask(ISA_FMA4) Var(ix86_isa_flags) Save
711 Support FMA4 built-in functions and code generation.
713 mxop
714 Target Mask(ISA_XOP) Var(ix86_isa_flags) Save
715 Support XOP built-in functions and code generation.
717 mlwp
718 Target Mask(ISA_LWP) Var(ix86_isa_flags) Save
719 Support LWP built-in functions and code generation.
721 mabm
722 Target Mask(ISA_ABM) Var(ix86_isa_flags) Save
723 Support code generation of Advanced Bit Manipulation (ABM) instructions.
725 mpopcnt
726 Target Mask(ISA_POPCNT) Var(ix86_isa_flags) Save
727 Support code generation of popcnt instruction.
729 mpconfig
730 Target Mask(ISA2_PCONFIG) Var(ix86_isa_flags2) Save
731 Support PCONFIG built-in functions and code generation.
733 mwbnoinvd
734 Target Mask(ISA2_WBNOINVD) Var(ix86_isa_flags2) Save
735 Support WBNOINVD built-in functions and code generation.
737 mptwrite
738 Target Mask(ISA2_PTWRITE) Var(ix86_isa_flags2) Save
739 Support PTWRITE built-in functions and code generation.
741 muintr
742 Target Mask(ISA2_UINTR) Var(ix86_isa_flags2) Save
743 Support UINTR built-in functions and code generation.
745 msgx
746 Target Mask(ISA2_SGX) Var(ix86_isa_flags2) Save
747 Support SGX built-in functions and code generation.
749 mrdpid
750 Target Mask(ISA2_RDPID) Var(ix86_isa_flags2) Save
751 Support RDPID built-in functions and code generation.
753 mgfni
754 Target Mask(ISA_GFNI) Var(ix86_isa_flags) Save
755 Support GFNI built-in functions and code generation.
757 mvaes
758 Target Mask(ISA2_VAES) Var(ix86_isa_flags2) Save
759 Support VAES built-in functions and code generation.
761 mvpclmulqdq
762 Target Mask(ISA_VPCLMULQDQ) Var(ix86_isa_flags) Save
763 Support VPCLMULQDQ built-in functions and code generation.
765 mbmi
766 Target Mask(ISA_BMI) Var(ix86_isa_flags) Save
767 Support BMI built-in functions and code generation.
769 mbmi2
770 Target Mask(ISA_BMI2) Var(ix86_isa_flags) Save
771 Support BMI2 built-in functions and code generation.
773 mlzcnt
774 Target Mask(ISA_LZCNT) Var(ix86_isa_flags) Save
775 Support LZCNT built-in function and code generation.
777 mhle
778 Target Mask(ISA2_HLE) Var(ix86_isa_flags2) Save
779 Support Hardware Lock Elision prefixes.
781 mrdseed
782 Target Mask(ISA_RDSEED) Var(ix86_isa_flags) Save
783 Support RDSEED instruction.
785 mprfchw
786 Target Mask(ISA_PRFCHW) Var(ix86_isa_flags) Save
787 Support PREFETCHW instruction.
789 madx
790 Target Mask(ISA_ADX) Var(ix86_isa_flags) Save
791 Support flag-preserving add-carry instructions.
793 mclflushopt
794 Target Mask(ISA_CLFLUSHOPT) Var(ix86_isa_flags) Save
795 Support CLFLUSHOPT instructions.
797 mclwb
798 Target Mask(ISA_CLWB) Var(ix86_isa_flags) Save
799 Support CLWB instruction.
801 mpcommit
802 Target WarnRemoved
804 mfxsr
805 Target Mask(ISA_FXSR) Var(ix86_isa_flags) Save
806 Support FXSAVE and FXRSTOR instructions.
808 mxsave
809 Target Mask(ISA_XSAVE) Var(ix86_isa_flags) Save
810 Support XSAVE and XRSTOR instructions.
812 mxsaveopt
813 Target Mask(ISA_XSAVEOPT) Var(ix86_isa_flags) Save
814 Support XSAVEOPT instruction.
816 mxsavec
817 Target Mask(ISA_XSAVEC) Var(ix86_isa_flags) Save
818 Support XSAVEC instructions.
820 mxsaves
821 Target Mask(ISA_XSAVES) Var(ix86_isa_flags) Save
822 Support XSAVES and XRSTORS instructions.
824 mtbm
825 Target Mask(ISA_TBM) Var(ix86_isa_flags) Save
826 Support TBM built-in functions and code generation.
828 mcx16
829 Target Mask(ISA2_CX16) Var(ix86_isa_flags2) Save
830 Support code generation of cmpxchg16b instruction.
832 msahf
833 Target Mask(ISA_SAHF) Var(ix86_isa_flags) Save
834 Support code generation of sahf instruction in 64bit x86-64 code.
836 mmovbe
837 Target Mask(ISA2_MOVBE) Var(ix86_isa_flags2) Save
838 Support code generation of movbe instruction.
840 mcrc32
841 Target Mask(ISA_CRC32) Var(ix86_isa_flags) Save
842 Support code generation of crc32 instruction.
844 maes
845 Target Mask(ISA_AES) Var(ix86_isa_flags) Save
846 Support AES built-in functions and code generation.
848 msha
849 Target Mask(ISA_SHA) Var(ix86_isa_flags) Save
850 Support SHA1 and SHA256 built-in functions and code generation.
852 mpclmul
853 Target Mask(ISA_PCLMUL) Var(ix86_isa_flags) Save
854 Support PCLMUL built-in functions and code generation.
856 msse2avx
857 Target Var(ix86_sse2avx)
858 Encode SSE instructions with VEX prefix.
860 mfsgsbase
861 Target Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
862 Support FSGSBASE built-in functions and code generation.
864 mrdrnd
865 Target Mask(ISA_RDRND) Var(ix86_isa_flags) Save
866 Support RDRND built-in functions and code generation.
868 mf16c
869 Target Mask(ISA_F16C) Var(ix86_isa_flags) Save
870 Support F16C built-in functions and code generation.
872 mprefetchwt1
873 Target Mask(ISA_PREFETCHWT1) Var(ix86_isa_flags) Save
874 Support PREFETCHWT1 built-in functions and code generation.
876 mfentry
877 Target Save Var(flag_fentry)
878 Emit profiling counter call at function entry before prologue.
880 mrecord-mcount
881 Target Var(flag_record_mcount)
882 Generate __mcount_loc section with all mcount or __fentry__ calls.
884 mnop-mcount
885 Target Var(flag_nop_mcount)
886 Generate mcount/__fentry__ calls as nops. To activate they need to be
887 patched in.
889 mfentry-name=
890 Target RejectNegative Joined Var(fentry_name)
891 Set name of __fentry__ symbol called at function entry.
893 mfentry-section=
894 Target RejectNegative Joined Var(fentry_section)
895 Set name of section to record mrecord-mcount calls.
897 mskip-rax-setup
898 Target Var(flag_skip_rax_setup)
899 Skip setting up RAX register when passing variable arguments.
901 m8bit-idiv
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.
913 mrtm
914 Target Mask(ISA_RTM) Var(ix86_isa_flags) Save
915 Support RTM built-in functions and code generation.
917 mmpx
918 Target WarnRemoved
919 Removed in GCC 9.  This switch has no effect.
921 mmwaitx
922 Target Mask(ISA2_MWAITX) Var(ix86_isa_flags2) Save
923 Support MWAITX and MONITORX built-in functions and code generation.
925 mclzero
926 Target Mask(ISA2_CLZERO) Var(ix86_isa_flags2) Save
927 Support CLZERO built-in functions and code generation.
929 mpku
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.
937 Enum
938 Name(stack_protector_guard) Type(enum stack_protector_guard)
939 Known stack protector guard (for use with the -mstack-protector-guard= option):
941 EnumValue
942 Enum(stack_protector_guard) String(tls) Value(SSP_TLS)
944 EnumValue
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.
951 TargetVariable
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.
958 TargetVariable
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.
965 mmitigate-rop
966 Target WarnRemoved
968 mgeneral-regs-only
969 Target RejectNegative Mask(GENERAL_REGS_ONLY) Var(ix86_target_flags) Save
970 Generate code which uses only the general registers.
972 mshstk
973 Target Mask(ISA_SHSTK) Var(ix86_isa_flags) Save
974 Enable shadow stack built-in functions from Control-flow Enforcement
975 Technology (CET).
977 mcet-switch
978 Target Undocumented Var(flag_cet_switch) Init(0)
979 Turn on CET instrumentation for switch statements that use a jump table and
980 an indirect jump.
982 mmanual-endbr
983 Target Var(flag_manual_endbr) Init(0)
984 Insert ENDBR instruction at function entry only via cf_check attribute
985 for CET instrumentation.
987 mforce-indirect-call
988 Target Var(flag_force_indirect_call) Init(0)
989 Make all function calls indirect.
991 mindirect-branch=
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.
995 mfunction-return=
996 Target RejectNegative Joined Enum(indirect_branch) Var(ix86_function_return) Init(indirect_branch_keep)
997 Convert function return to call and return thunk.
999 Enum
1000 Name(indirect_branch) Type(enum indirect_branch)
1001 Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
1003 EnumValue
1004 Enum(indirect_branch) String(keep) Value(indirect_branch_keep)
1006 EnumValue
1007 Enum(indirect_branch) String(thunk) Value(indirect_branch_thunk)
1009 EnumValue
1010 Enum(indirect_branch) String(thunk-inline) Value(indirect_branch_thunk_inline)
1012 EnumValue
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.
1023 mmovdiri
1024 Target Mask(ISA_MOVDIRI) Var(ix86_isa_flags) Save
1025 Support MOVDIRI built-in functions and code generation.
1027 mmovdir64b
1028 Target Mask(ISA2_MOVDIR64B) Var(ix86_isa_flags2) Save
1029 Support MOVDIR64B built-in functions and code generation.
1031 mwaitpkg
1032 Target Mask(ISA2_WAITPKG) Var(ix86_isa_flags2) Save
1033 Support WAITPKG built-in functions and code generation.
1035 mcldemote
1036 Target Mask(ISA2_CLDEMOTE) Var(ix86_isa_flags2) Save
1037 Support CLDEMOTE built-in functions and code generation.
1039 minstrument-return=
1040 Target RejectNegative Joined Enum(instrument_return) Var(ix86_instrument_return) Init(instrument_return_none)
1041 Instrument function exit in instrumented functions with __fentry__.
1043 Enum
1044 Name(instrument_return) Type(enum instrument_return)
1045 Known choices for return instrumentation with -minstrument-return=:
1047 EnumValue
1048 Enum(instrument_return) String(none) Value(instrument_return_none)
1050 EnumValue
1051 Enum(instrument_return) String(call) Value(instrument_return_call)
1053 EnumValue
1054 Enum(instrument_return) String(nop5) Value(instrument_return_nop5)
1056 mrecord-return
1057 Target Var(ix86_flag_record_return) Init(0)
1058 Generate a __return_loc section pointing to all return instrumentation code.
1060 mharden-sls=
1061 Target RejectNegative Joined Enum(harden_sls) Var(ix86_harden_sls) Init(harden_sls_none)
1062 Generate code to mitigate against straight line speculation.
1064 Enum
1065 Name(harden_sls) Type(enum harden_sls)
1066 Known choices for mitigation against straight line speculation with -mharden-sls=:
1068 EnumValue
1069 Enum(harden_sls) String(none) Value(harden_sls_none)
1071 EnumValue
1072 Enum(harden_sls) String(return) Value(harden_sls_return)
1074 EnumValue
1075 Enum(harden_sls) String(indirect-jmp) Value(harden_sls_indirect_jmp)
1077 EnumValue
1078 Enum(harden_sls) String(all) Value(harden_sls_all)
1080 mavx512bf16
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.
1085 menqcmd
1086 Target Mask(ISA2_ENQCMD) Var(ix86_isa_flags2) Save
1087 Support ENQCMD built-in functions and code generation.
1089 mserialize
1090 Target Mask(ISA2_SERIALIZE) Var(ix86_isa_flags2) Save
1091 Support SERIALIZE built-in functions and code generation.
1093 mtsxldtrk
1094 Target Mask(ISA2_TSXLDTRK) Var(ix86_isa_flags2) Save
1095 Support TSXLDTRK built-in functions and code generation.
1097 mamx-tile
1098 Target Mask(ISA2_AMX_TILE) Var(ix86_isa_flags2) Save
1099 Support AMX-TILE built-in functions and code generation.
1101 mamx-int8
1102 Target Mask(ISA2_AMX_INT8) Var(ix86_isa_flags2) Save
1103 Support AMX-INT8 built-in functions and code generation.
1105 mamx-bf16
1106 Target Mask(ISA2_AMX_BF16) Var(ix86_isa_flags2) Save
1107 Support AMX-BF16 built-in functions and code generation.
1109 mhreset
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.
1117 mwidekl
1118 Target Mask(ISA2_WIDEKL) Var(ix86_isa_flags2) Save
1119 Support WIDEKL built-in functions and code generation.
1121 mavxvnni
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.
1126 mneeded
1127 Target Var(ix86_needed) Save
1128 Emit GNU_PROPERTY_X86_ISA_1_NEEDED GNU property.
1130 mmwait
1131 Target Mask(ISA2_MWAIT) Var(ix86_isa_flags2) Save
1132 Support MWAIT and MONITOR built-in functions and code generation.
1134 mavx512fp16
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.