xref: /dflybsd-src/contrib/gcc-4.7/gcc/config/i386/i386.opt (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
1*e4b17023SJohn Marino; Options for the IA-32 and AMD64 ports of the compiler.
2*e4b17023SJohn Marino
3*e4b17023SJohn Marino; Copyright (C) 2005, 2006, 2007, 2008, 2009,
4*e4b17023SJohn Marino; 2010, 2011 Free Software Foundation, Inc.
5*e4b17023SJohn Marino;
6*e4b17023SJohn Marino; This file is part of GCC.
7*e4b17023SJohn Marino;
8*e4b17023SJohn Marino; GCC is free software; you can redistribute it and/or modify it under
9*e4b17023SJohn Marino; the terms of the GNU General Public License as published by the Free
10*e4b17023SJohn Marino; Software Foundation; either version 3, or (at your option) any later
11*e4b17023SJohn Marino; version.
12*e4b17023SJohn Marino;
13*e4b17023SJohn Marino; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14*e4b17023SJohn Marino; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15*e4b17023SJohn Marino; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16*e4b17023SJohn Marino; for more details.
17*e4b17023SJohn Marino;
18*e4b17023SJohn Marino; You should have received a copy of the GNU General Public License
19*e4b17023SJohn Marino; along with GCC; see the file COPYING3.  If not see
20*e4b17023SJohn Marino; <http://www.gnu.org/licenses/>.
21*e4b17023SJohn Marino
22*e4b17023SJohn MarinoHeaderInclude
23*e4b17023SJohn Marinoconfig/i386/i386-opts.h
24*e4b17023SJohn Marino
25*e4b17023SJohn Marino; Bit flags that specify the ISA we are compiling for.
26*e4b17023SJohn MarinoVariable
27*e4b17023SJohn MarinoHOST_WIDE_INT ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT
28*e4b17023SJohn Marino
29*e4b17023SJohn Marino; A mask of ix86_isa_flags that includes bit X if X was set or cleared
30*e4b17023SJohn Marino; on the command line.
31*e4b17023SJohn MarinoVariable
32*e4b17023SJohn MarinoHOST_WIDE_INT ix86_isa_flags_explicit
33*e4b17023SJohn Marino
34*e4b17023SJohn MarinoTargetVariable
35*e4b17023SJohn Marinoint recip_mask = RECIP_MASK_DEFAULT
36*e4b17023SJohn Marino
37*e4b17023SJohn MarinoVariable
38*e4b17023SJohn Marinoint recip_mask_explicit
39*e4b17023SJohn Marino
40*e4b17023SJohn MarinoTargetSave
41*e4b17023SJohn Marinoint x_recip_mask_explicit
42*e4b17023SJohn Marino
43*e4b17023SJohn Marino;; Definitions to add to the cl_target_option structure
44*e4b17023SJohn Marino;; -march= processor
45*e4b17023SJohn MarinoTargetSave
46*e4b17023SJohn Marinounsigned char arch
47*e4b17023SJohn Marino
48*e4b17023SJohn Marino;; -mtune= processor
49*e4b17023SJohn MarinoTargetSave
50*e4b17023SJohn Marinounsigned char tune
51*e4b17023SJohn Marino
52*e4b17023SJohn Marino;; CPU schedule model
53*e4b17023SJohn MarinoTargetSave
54*e4b17023SJohn Marinounsigned char schedule
55*e4b17023SJohn Marino
56*e4b17023SJohn Marino;; branch cost
57*e4b17023SJohn MarinoTargetSave
58*e4b17023SJohn Marinounsigned char branch_cost
59*e4b17023SJohn Marino
60*e4b17023SJohn Marino;; which flags were passed by the user
61*e4b17023SJohn MarinoTargetSave
62*e4b17023SJohn MarinoHOST_WIDE_INT x_ix86_isa_flags_explicit
63*e4b17023SJohn Marino
64*e4b17023SJohn Marino;; which flags were passed by the user
65*e4b17023SJohn MarinoTargetSave
66*e4b17023SJohn Marinoint ix86_target_flags_explicit
67*e4b17023SJohn Marino
68*e4b17023SJohn Marino;; whether -mtune was not specified
69*e4b17023SJohn MarinoTargetSave
70*e4b17023SJohn Marinounsigned char tune_defaulted
71*e4b17023SJohn Marino
72*e4b17023SJohn Marino;; whether -march was specified
73*e4b17023SJohn MarinoTargetSave
74*e4b17023SJohn Marinounsigned char arch_specified
75*e4b17023SJohn Marino
76*e4b17023SJohn Marino;; x86 options
77*e4b17023SJohn Marinom128bit-long-double
78*e4b17023SJohn MarinoTarget RejectNegative Report Mask(128BIT_LONG_DOUBLE) Save
79*e4b17023SJohn Marinosizeof(long double) is 16
80*e4b17023SJohn Marino
81*e4b17023SJohn Marinom80387
82*e4b17023SJohn MarinoTarget Report Mask(80387) Save
83*e4b17023SJohn MarinoUse hardware fp
84*e4b17023SJohn Marino
85*e4b17023SJohn Marinom96bit-long-double
86*e4b17023SJohn MarinoTarget RejectNegative Report InverseMask(128BIT_LONG_DOUBLE) Save
87*e4b17023SJohn Marinosizeof(long double) is 12
88*e4b17023SJohn Marino
89*e4b17023SJohn Marinomaccumulate-outgoing-args
90*e4b17023SJohn MarinoTarget Report Mask(ACCUMULATE_OUTGOING_ARGS) Save
91*e4b17023SJohn MarinoReserve space for outgoing arguments in the function prologue
92*e4b17023SJohn Marino
93*e4b17023SJohn Marinomalign-double
94*e4b17023SJohn MarinoTarget Report Mask(ALIGN_DOUBLE) Save
95*e4b17023SJohn MarinoAlign some doubles on dword boundary
96*e4b17023SJohn Marino
97*e4b17023SJohn Marinomalign-functions=
98*e4b17023SJohn MarinoTarget RejectNegative Joined UInteger
99*e4b17023SJohn MarinoFunction starts are aligned to this power of 2
100*e4b17023SJohn Marino
101*e4b17023SJohn Marinomalign-jumps=
102*e4b17023SJohn MarinoTarget RejectNegative Joined UInteger
103*e4b17023SJohn MarinoJump targets are aligned to this power of 2
104*e4b17023SJohn Marino
105*e4b17023SJohn Marinomalign-loops=
106*e4b17023SJohn MarinoTarget RejectNegative Joined UInteger
107*e4b17023SJohn MarinoLoop code aligned to this power of 2
108*e4b17023SJohn Marino
109*e4b17023SJohn Marinomalign-stringops
110*e4b17023SJohn MarinoTarget RejectNegative Report InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS) Save
111*e4b17023SJohn MarinoAlign destination of the string operations
112*e4b17023SJohn Marino
113*e4b17023SJohn Marinomarch=
114*e4b17023SJohn MarinoTarget RejectNegative Joined Var(ix86_arch_string)
115*e4b17023SJohn MarinoGenerate code for given CPU
116*e4b17023SJohn Marino
117*e4b17023SJohn Marinomasm=
118*e4b17023SJohn MarinoTarget RejectNegative Joined Enum(asm_dialect) Var(ix86_asm_dialect) Init(ASM_ATT)
119*e4b17023SJohn MarinoUse given assembler dialect
120*e4b17023SJohn Marino
121*e4b17023SJohn MarinoEnum
122*e4b17023SJohn MarinoName(asm_dialect) Type(enum asm_dialect)
123*e4b17023SJohn MarinoKnown assembler dialects (for use with the -masm-dialect= option):
124*e4b17023SJohn Marino
125*e4b17023SJohn MarinoEnumValue
126*e4b17023SJohn MarinoEnum(asm_dialect) String(intel) Value(ASM_INTEL)
127*e4b17023SJohn Marino
128*e4b17023SJohn MarinoEnumValue
129*e4b17023SJohn MarinoEnum(asm_dialect) String(att) Value(ASM_ATT)
130*e4b17023SJohn Marino
131*e4b17023SJohn Marinombranch-cost=
132*e4b17023SJohn MarinoTarget RejectNegative Joined UInteger Var(ix86_branch_cost)
133*e4b17023SJohn MarinoBranches are this expensive (1-5, arbitrary units)
134*e4b17023SJohn Marino
135*e4b17023SJohn Marinomlarge-data-threshold=
136*e4b17023SJohn MarinoTarget RejectNegative Joined UInteger Var(ix86_section_threshold) Init(65536)
137*e4b17023SJohn MarinoData greater than given threshold will go into .ldata section in x86-64 medium model
138*e4b17023SJohn Marino
139*e4b17023SJohn Marinomcmodel=
140*e4b17023SJohn MarinoTarget RejectNegative Joined Enum(cmodel) Var(ix86_cmodel) Init(CM_32)
141*e4b17023SJohn MarinoUse given x86-64 code model
142*e4b17023SJohn Marino
143*e4b17023SJohn MarinoEnum
144*e4b17023SJohn MarinoName(cmodel) Type(enum cmodel)
145*e4b17023SJohn MarinoKnown code models (for use with the -mcmodel= option):
146*e4b17023SJohn Marino
147*e4b17023SJohn MarinoEnumValue
148*e4b17023SJohn MarinoEnum(cmodel) String(small) Value(CM_SMALL)
149*e4b17023SJohn Marino
150*e4b17023SJohn MarinoEnumValue
151*e4b17023SJohn MarinoEnum(cmodel) String(medium) Value(CM_MEDIUM)
152*e4b17023SJohn Marino
153*e4b17023SJohn MarinoEnumValue
154*e4b17023SJohn MarinoEnum(cmodel) String(large) Value(CM_LARGE)
155*e4b17023SJohn Marino
156*e4b17023SJohn MarinoEnumValue
157*e4b17023SJohn MarinoEnum(cmodel) String(32) Value(CM_32)
158*e4b17023SJohn Marino
159*e4b17023SJohn MarinoEnumValue
160*e4b17023SJohn MarinoEnum(cmodel) String(kernel) Value(CM_KERNEL)
161*e4b17023SJohn Marino
162*e4b17023SJohn Marinomcpu=
163*e4b17023SJohn MarinoTarget RejectNegative Joined Undocumented Alias(mtune=) Warn(%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead)
164*e4b17023SJohn Marino
165*e4b17023SJohn Marinomfancy-math-387
166*e4b17023SJohn MarinoTarget RejectNegative Report InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387) Save
167*e4b17023SJohn MarinoGenerate sin, cos, sqrt for FPU
168*e4b17023SJohn Marino
169*e4b17023SJohn Marinomforce-drap
170*e4b17023SJohn MarinoTarget Report Var(ix86_force_drap)
171*e4b17023SJohn MarinoAlways use Dynamic Realigned Argument Pointer (DRAP) to realign stack
172*e4b17023SJohn Marino
173*e4b17023SJohn Marinomfp-ret-in-387
174*e4b17023SJohn MarinoTarget Report Mask(FLOAT_RETURNS) Save
175*e4b17023SJohn MarinoReturn values of functions in FPU registers
176*e4b17023SJohn Marino
177*e4b17023SJohn Marinomfpmath=
178*e4b17023SJohn MarinoTarget RejectNegative Joined Var(ix86_fpmath) Enum(fpmath_unit) Init(FPMATH_387) Save
179*e4b17023SJohn MarinoGenerate floating point mathematics using given instruction set
180*e4b17023SJohn Marino
181*e4b17023SJohn MarinoEnum
182*e4b17023SJohn MarinoName(fpmath_unit) Type(enum fpmath_unit)
183*e4b17023SJohn MarinoValid arguments to -mfpmath=:
184*e4b17023SJohn Marino
185*e4b17023SJohn MarinoEnumValue
186*e4b17023SJohn MarinoEnum(fpmath_unit) String(387) Value(FPMATH_387)
187*e4b17023SJohn Marino
188*e4b17023SJohn MarinoEnumValue
189*e4b17023SJohn MarinoEnum(fpmath_unit) String(sse) Value(FPMATH_SSE)
190*e4b17023SJohn Marino
191*e4b17023SJohn MarinoEnumValue
192*e4b17023SJohn MarinoEnum(fpmath_unit) String(387,sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
193*e4b17023SJohn Marino
194*e4b17023SJohn MarinoEnumValue
195*e4b17023SJohn MarinoEnum(fpmath_unit) String(387+sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
196*e4b17023SJohn Marino
197*e4b17023SJohn MarinoEnumValue
198*e4b17023SJohn MarinoEnum(fpmath_unit) String(sse,387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
199*e4b17023SJohn Marino
200*e4b17023SJohn MarinoEnumValue
201*e4b17023SJohn MarinoEnum(fpmath_unit) String(sse+387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
202*e4b17023SJohn Marino
203*e4b17023SJohn MarinoEnumValue
204*e4b17023SJohn MarinoEnum(fpmath_unit) String(both) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
205*e4b17023SJohn Marino
206*e4b17023SJohn Marinomhard-float
207*e4b17023SJohn MarinoTarget RejectNegative Mask(80387) MaskExists Save
208*e4b17023SJohn MarinoUse hardware fp
209*e4b17023SJohn Marino
210*e4b17023SJohn Marinomieee-fp
211*e4b17023SJohn MarinoTarget Report Mask(IEEE_FP) Save
212*e4b17023SJohn MarinoUse IEEE math for fp comparisons
213*e4b17023SJohn Marino
214*e4b17023SJohn Marinominline-all-stringops
215*e4b17023SJohn MarinoTarget Report Mask(INLINE_ALL_STRINGOPS) Save
216*e4b17023SJohn MarinoInline all known string operations
217*e4b17023SJohn Marino
218*e4b17023SJohn Marinominline-stringops-dynamically
219*e4b17023SJohn MarinoTarget Report Mask(INLINE_STRINGOPS_DYNAMICALLY) Save
220*e4b17023SJohn MarinoInline memset/memcpy string operations, but perform inline version only for small blocks
221*e4b17023SJohn Marino
222*e4b17023SJohn Marinomintel-syntax
223*e4b17023SJohn MarinoTarget Undocumented Alias(masm=, intel, att) Warn(%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead)
224*e4b17023SJohn Marino;; Deprecated
225*e4b17023SJohn Marino
226*e4b17023SJohn Marinomms-bitfields
227*e4b17023SJohn MarinoTarget Report Mask(MS_BITFIELD_LAYOUT) Save
228*e4b17023SJohn MarinoUse native (MS) bitfield layout
229*e4b17023SJohn Marino
230*e4b17023SJohn Marinomno-align-stringops
231*e4b17023SJohn MarinoTarget RejectNegative Report Mask(NO_ALIGN_STRINGOPS) Undocumented Save
232*e4b17023SJohn Marino
233*e4b17023SJohn Marinomno-fancy-math-387
234*e4b17023SJohn MarinoTarget RejectNegative Report Mask(NO_FANCY_MATH_387) Undocumented Save
235*e4b17023SJohn Marino
236*e4b17023SJohn Marinomno-push-args
237*e4b17023SJohn MarinoTarget RejectNegative Report Mask(NO_PUSH_ARGS) Undocumented Save
238*e4b17023SJohn Marino
239*e4b17023SJohn Marinomno-red-zone
240*e4b17023SJohn MarinoTarget RejectNegative Report Mask(NO_RED_ZONE) Undocumented Save
241*e4b17023SJohn Marino
242*e4b17023SJohn Marinomomit-leaf-frame-pointer
243*e4b17023SJohn MarinoTarget Report Mask(OMIT_LEAF_FRAME_POINTER) Save
244*e4b17023SJohn MarinoOmit the frame pointer in leaf functions
245*e4b17023SJohn Marino
246*e4b17023SJohn Marinompc32
247*e4b17023SJohn MarinoTarget RejectNegative Report
248*e4b17023SJohn MarinoSet 80387 floating-point precision to 32-bit
249*e4b17023SJohn Marino
250*e4b17023SJohn Marinompc64
251*e4b17023SJohn MarinoTarget RejectNegative Report
252*e4b17023SJohn MarinoSet 80387 floating-point precision to 64-bit
253*e4b17023SJohn Marino
254*e4b17023SJohn Marinompc80
255*e4b17023SJohn MarinoTarget RejectNegative Report
256*e4b17023SJohn MarinoSet 80387 floating-point precision to 80-bit
257*e4b17023SJohn Marino
258*e4b17023SJohn Marinompreferred-stack-boundary=
259*e4b17023SJohn MarinoTarget RejectNegative Joined UInteger Var(ix86_preferred_stack_boundary_arg)
260*e4b17023SJohn MarinoAttempt to keep stack aligned to this power of 2
261*e4b17023SJohn Marino
262*e4b17023SJohn Marinomincoming-stack-boundary=
263*e4b17023SJohn MarinoTarget RejectNegative Joined UInteger Var(ix86_incoming_stack_boundary_arg)
264*e4b17023SJohn MarinoAssume incoming stack aligned to this power of 2
265*e4b17023SJohn Marino
266*e4b17023SJohn Marinompush-args
267*e4b17023SJohn MarinoTarget Report InverseMask(NO_PUSH_ARGS, PUSH_ARGS) Save
268*e4b17023SJohn MarinoUse push instructions to save outgoing arguments
269*e4b17023SJohn Marino
270*e4b17023SJohn Marinomred-zone
271*e4b17023SJohn MarinoTarget RejectNegative Report InverseMask(NO_RED_ZONE, RED_ZONE) Save
272*e4b17023SJohn MarinoUse red-zone in the x86-64 code
273*e4b17023SJohn Marino
274*e4b17023SJohn Marinomregparm=
275*e4b17023SJohn MarinoTarget RejectNegative Joined UInteger Var(ix86_regparm)
276*e4b17023SJohn MarinoNumber of registers used to pass integer arguments
277*e4b17023SJohn Marino
278*e4b17023SJohn Marinomrtd
279*e4b17023SJohn MarinoTarget Report Mask(RTD) Save
280*e4b17023SJohn MarinoAlternate calling convention
281*e4b17023SJohn Marino
282*e4b17023SJohn Marinomsoft-float
283*e4b17023SJohn MarinoTarget InverseMask(80387) Save
284*e4b17023SJohn MarinoDo not use hardware fp
285*e4b17023SJohn Marino
286*e4b17023SJohn Marinomsseregparm
287*e4b17023SJohn MarinoTarget RejectNegative Mask(SSEREGPARM) Save
288*e4b17023SJohn MarinoUse SSE register passing conventions for SF and DF mode
289*e4b17023SJohn Marino
290*e4b17023SJohn Marinomstackrealign
291*e4b17023SJohn MarinoTarget Report Var(ix86_force_align_arg_pointer) Init(-1)
292*e4b17023SJohn MarinoRealign stack in prologue
293*e4b17023SJohn Marino
294*e4b17023SJohn Marinomstack-arg-probe
295*e4b17023SJohn MarinoTarget Report Mask(STACK_PROBE) Save
296*e4b17023SJohn MarinoEnable stack probing
297*e4b17023SJohn Marino
298*e4b17023SJohn Marinomstringop-strategy=
299*e4b17023SJohn MarinoTarget RejectNegative Joined Enum(stringop_alg) Var(ix86_stringop_alg) Init(no_stringop)
300*e4b17023SJohn MarinoChose strategy to generate stringop using
301*e4b17023SJohn Marino
302*e4b17023SJohn MarinoEnum
303*e4b17023SJohn MarinoName(stringop_alg) Type(enum stringop_alg)
304*e4b17023SJohn MarinoValid arguments to -mstringop-strategy=:
305*e4b17023SJohn Marino
306*e4b17023SJohn MarinoEnumValue
307*e4b17023SJohn MarinoEnum(stringop_alg) String(rep_byte) Value(rep_prefix_1_byte)
308*e4b17023SJohn Marino
309*e4b17023SJohn MarinoEnumValue
310*e4b17023SJohn MarinoEnum(stringop_alg) String(libcall) Value(libcall)
311*e4b17023SJohn Marino
312*e4b17023SJohn MarinoEnumValue
313*e4b17023SJohn MarinoEnum(stringop_alg) String(rep_4byte) Value(rep_prefix_4_byte)
314*e4b17023SJohn Marino
315*e4b17023SJohn MarinoEnumValue
316*e4b17023SJohn MarinoEnum(stringop_alg) String(rep_8byte) Value(rep_prefix_8_byte)
317*e4b17023SJohn Marino
318*e4b17023SJohn MarinoEnumValue
319*e4b17023SJohn MarinoEnum(stringop_alg) String(byte_loop) Value(loop_1_byte)
320*e4b17023SJohn Marino
321*e4b17023SJohn MarinoEnumValue
322*e4b17023SJohn MarinoEnum(stringop_alg) String(loop) Value(loop)
323*e4b17023SJohn Marino
324*e4b17023SJohn MarinoEnumValue
325*e4b17023SJohn MarinoEnum(stringop_alg) String(unrolled_loop) Value(unrolled_loop)
326*e4b17023SJohn Marino
327*e4b17023SJohn Marinomtls-dialect=
328*e4b17023SJohn MarinoTarget RejectNegative Joined Var(ix86_tls_dialect) Enum(tls_dialect) Init(TLS_DIALECT_GNU)
329*e4b17023SJohn MarinoUse given thread-local storage dialect
330*e4b17023SJohn Marino
331*e4b17023SJohn MarinoEnum
332*e4b17023SJohn MarinoName(tls_dialect) Type(enum tls_dialect)
333*e4b17023SJohn MarinoKnown TLS dialects (for use with the -mtls-dialect= option):
334*e4b17023SJohn Marino
335*e4b17023SJohn MarinoEnumValue
336*e4b17023SJohn MarinoEnum(tls_dialect) String(gnu) Value(TLS_DIALECT_GNU)
337*e4b17023SJohn Marino
338*e4b17023SJohn MarinoEnumValue
339*e4b17023SJohn MarinoEnum(tls_dialect) String(gnu2) Value(TLS_DIALECT_GNU2)
340*e4b17023SJohn Marino
341*e4b17023SJohn Marinomtls-direct-seg-refs
342*e4b17023SJohn MarinoTarget Report Mask(TLS_DIRECT_SEG_REFS)
343*e4b17023SJohn MarinoUse direct references against %gs when accessing tls data
344*e4b17023SJohn Marino
345*e4b17023SJohn Marinomtune=
346*e4b17023SJohn MarinoTarget RejectNegative Joined Var(ix86_tune_string)
347*e4b17023SJohn MarinoSchedule code for given CPU
348*e4b17023SJohn Marino
349*e4b17023SJohn Marinomabi=
350*e4b17023SJohn MarinoTarget RejectNegative Joined Var(ix86_abi) Enum(calling_abi) Init(SYSV_ABI)
351*e4b17023SJohn MarinoGenerate code that conforms to the given ABI
352*e4b17023SJohn Marino
353*e4b17023SJohn MarinoEnum
354*e4b17023SJohn MarinoName(calling_abi) Type(enum calling_abi)
355*e4b17023SJohn MarinoKnown ABIs (for use with the -mabi= option):
356*e4b17023SJohn Marino
357*e4b17023SJohn MarinoEnumValue
358*e4b17023SJohn MarinoEnum(calling_abi) String(sysv) Value(SYSV_ABI)
359*e4b17023SJohn Marino
360*e4b17023SJohn MarinoEnumValue
361*e4b17023SJohn MarinoEnum(calling_abi) String(ms) Value(MS_ABI)
362*e4b17023SJohn Marino
363*e4b17023SJohn Marinomveclibabi=
364*e4b17023SJohn MarinoTarget RejectNegative Joined Var(ix86_veclibabi_type) Enum(ix86_veclibabi) Init(ix86_veclibabi_type_none)
365*e4b17023SJohn MarinoVector library ABI to use
366*e4b17023SJohn Marino
367*e4b17023SJohn MarinoEnum
368*e4b17023SJohn MarinoName(ix86_veclibabi) Type(enum ix86_veclibabi)
369*e4b17023SJohn MarinoKnown vectorization library ABIs (for use with the -mveclibabi= option):
370*e4b17023SJohn Marino
371*e4b17023SJohn MarinoEnumValue
372*e4b17023SJohn MarinoEnum(ix86_veclibabi) String(svml) Value(ix86_veclibabi_type_svml)
373*e4b17023SJohn Marino
374*e4b17023SJohn MarinoEnumValue
375*e4b17023SJohn MarinoEnum(ix86_veclibabi) String(acml) Value(ix86_veclibabi_type_acml)
376*e4b17023SJohn Marino
377*e4b17023SJohn Marinomvect8-ret-in-mem
378*e4b17023SJohn MarinoTarget Report Mask(VECT8_RETURNS) Save
379*e4b17023SJohn MarinoReturn 8-byte vectors in memory
380*e4b17023SJohn Marino
381*e4b17023SJohn Marinomrecip
382*e4b17023SJohn MarinoTarget Report Mask(RECIP) Save
383*e4b17023SJohn MarinoGenerate reciprocals instead of divss and sqrtss.
384*e4b17023SJohn Marino
385*e4b17023SJohn Marinomrecip=
386*e4b17023SJohn MarinoTarget Report RejectNegative Joined Var(ix86_recip_name)
387*e4b17023SJohn MarinoControl generation of reciprocal estimates.
388*e4b17023SJohn Marino
389*e4b17023SJohn Marinomcld
390*e4b17023SJohn MarinoTarget Report Mask(CLD) Save
391*e4b17023SJohn MarinoGenerate cld instruction in the function prologue.
392*e4b17023SJohn Marino
393*e4b17023SJohn Marinomvzeroupper
394*e4b17023SJohn MarinoTarget Report Mask(VZEROUPPER) Save
395*e4b17023SJohn MarinoGenerate vzeroupper instruction before a transfer of control flow out of
396*e4b17023SJohn Marinothe function.
397*e4b17023SJohn Marino
398*e4b17023SJohn Marinomdispatch-scheduler
399*e4b17023SJohn MarinoTarget RejectNegative Var(flag_dispatch_scheduler)
400*e4b17023SJohn MarinoDo dispatch scheduling if processor is bdver1 or bdver2 and Haifa scheduling
401*e4b17023SJohn Marinois selected.
402*e4b17023SJohn Marino
403*e4b17023SJohn Marinomprefer-avx128
404*e4b17023SJohn MarinoTarget Report Mask(PREFER_AVX128) SAVE
405*e4b17023SJohn MarinoUse 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer.
406*e4b17023SJohn Marino
407*e4b17023SJohn Marino;; ISA support
408*e4b17023SJohn Marino
409*e4b17023SJohn Marinom32
410*e4b17023SJohn MarinoTarget RejectNegative Negative(m64) Report InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
411*e4b17023SJohn MarinoGenerate 32bit i386 code
412*e4b17023SJohn Marino
413*e4b17023SJohn Marinom64
414*e4b17023SJohn MarinoTarget RejectNegative Negative(mx32) Report Mask(ISA_64BIT) Var(ix86_isa_flags) Save
415*e4b17023SJohn MarinoGenerate 64bit x86-64 code
416*e4b17023SJohn Marino
417*e4b17023SJohn Marinomx32
418*e4b17023SJohn MarinoTarget RejectNegative Negative(m32) Report Mask(ISA_X32) Var(ix86_isa_flags) Save
419*e4b17023SJohn MarinoGenerate 32bit x86-64 code
420*e4b17023SJohn Marino
421*e4b17023SJohn Marinommmx
422*e4b17023SJohn MarinoTarget Report Mask(ISA_MMX) Var(ix86_isa_flags) Save
423*e4b17023SJohn MarinoSupport MMX built-in functions
424*e4b17023SJohn Marino
425*e4b17023SJohn Marinom3dnow
426*e4b17023SJohn MarinoTarget Report Mask(ISA_3DNOW) Var(ix86_isa_flags) Save
427*e4b17023SJohn MarinoSupport 3DNow! built-in functions
428*e4b17023SJohn Marino
429*e4b17023SJohn Marinom3dnowa
430*e4b17023SJohn MarinoTarget Undocumented Mask(ISA_3DNOW_A) Var(ix86_isa_flags) Save
431*e4b17023SJohn MarinoSupport Athlon 3Dnow! built-in functions
432*e4b17023SJohn Marino
433*e4b17023SJohn Marinomsse
434*e4b17023SJohn MarinoTarget Report Mask(ISA_SSE) Var(ix86_isa_flags) Save
435*e4b17023SJohn MarinoSupport MMX and SSE built-in functions and code generation
436*e4b17023SJohn Marino
437*e4b17023SJohn Marinomsse2
438*e4b17023SJohn MarinoTarget Report Mask(ISA_SSE2) Var(ix86_isa_flags) Save
439*e4b17023SJohn MarinoSupport MMX, SSE and SSE2 built-in functions and code generation
440*e4b17023SJohn Marino
441*e4b17023SJohn Marinomsse3
442*e4b17023SJohn MarinoTarget Report Mask(ISA_SSE3) Var(ix86_isa_flags) Save
443*e4b17023SJohn MarinoSupport MMX, SSE, SSE2 and SSE3 built-in functions and code generation
444*e4b17023SJohn Marino
445*e4b17023SJohn Marinomssse3
446*e4b17023SJohn MarinoTarget Report Mask(ISA_SSSE3) Var(ix86_isa_flags) Save
447*e4b17023SJohn MarinoSupport MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation
448*e4b17023SJohn Marino
449*e4b17023SJohn Marinomsse4.1
450*e4b17023SJohn MarinoTarget Report Mask(ISA_SSE4_1) Var(ix86_isa_flags) Save
451*e4b17023SJohn MarinoSupport MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation
452*e4b17023SJohn Marino
453*e4b17023SJohn Marinomsse4.2
454*e4b17023SJohn MarinoTarget Report Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
455*e4b17023SJohn MarinoSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation
456*e4b17023SJohn Marino
457*e4b17023SJohn Marinomsse4
458*e4b17023SJohn MarinoTarget RejectNegative Report Mask(ISA_SSE4_2) MaskExists Var(ix86_isa_flags) Save
459*e4b17023SJohn MarinoSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation
460*e4b17023SJohn Marino
461*e4b17023SJohn Marinomno-sse4
462*e4b17023SJohn MarinoTarget RejectNegative Report InverseMask(ISA_SSE4_1) MaskExists Var(ix86_isa_flags) Save
463*e4b17023SJohn MarinoDo not support SSE4.1 and SSE4.2 built-in functions and code generation
464*e4b17023SJohn Marino
465*e4b17023SJohn Marinomsse5
466*e4b17023SJohn MarinoTarget Undocumented Alias(mavx) Warn(%<-msse5%> was removed)
467*e4b17023SJohn Marino;; Deprecated
468*e4b17023SJohn Marino
469*e4b17023SJohn Marinomavx
470*e4b17023SJohn MarinoTarget Report Mask(ISA_AVX) Var(ix86_isa_flags) Save
471*e4b17023SJohn MarinoSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation
472*e4b17023SJohn Marino
473*e4b17023SJohn Marinomavx2
474*e4b17023SJohn MarinoTarget Report Mask(ISA_AVX2) Var(ix86_isa_flags) Save
475*e4b17023SJohn MarinoSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation
476*e4b17023SJohn Marino
477*e4b17023SJohn Marinomfma
478*e4b17023SJohn MarinoTarget Report Mask(ISA_FMA) Var(ix86_isa_flags) Save
479*e4b17023SJohn MarinoSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation
480*e4b17023SJohn Marino
481*e4b17023SJohn Marinomsse4a
482*e4b17023SJohn MarinoTarget Report Mask(ISA_SSE4A) Var(ix86_isa_flags) Save
483*e4b17023SJohn MarinoSupport MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation
484*e4b17023SJohn Marino
485*e4b17023SJohn Marinomfma4
486*e4b17023SJohn MarinoTarget Report Mask(ISA_FMA4) Var(ix86_isa_flags) Save
487*e4b17023SJohn MarinoSupport FMA4 built-in functions and code generation
488*e4b17023SJohn Marino
489*e4b17023SJohn Marinomxop
490*e4b17023SJohn MarinoTarget Report Mask(ISA_XOP) Var(ix86_isa_flags) Save
491*e4b17023SJohn MarinoSupport XOP built-in functions and code generation
492*e4b17023SJohn Marino
493*e4b17023SJohn Marinomlwp
494*e4b17023SJohn MarinoTarget Report Mask(ISA_LWP) Var(ix86_isa_flags) Save
495*e4b17023SJohn MarinoSupport LWP built-in functions and code generation
496*e4b17023SJohn Marino
497*e4b17023SJohn Marinomabm
498*e4b17023SJohn MarinoTarget Report Mask(ISA_ABM) Var(ix86_isa_flags) Save
499*e4b17023SJohn MarinoSupport code generation of Advanced Bit Manipulation (ABM) instructions.
500*e4b17023SJohn Marino
501*e4b17023SJohn Marinompopcnt
502*e4b17023SJohn MarinoTarget Report Mask(ISA_POPCNT) Var(ix86_isa_flags) Save
503*e4b17023SJohn MarinoSupport code generation of popcnt instruction.
504*e4b17023SJohn Marino
505*e4b17023SJohn Marinombmi
506*e4b17023SJohn MarinoTarget Report Mask(ISA_BMI) Var(ix86_isa_flags) Save
507*e4b17023SJohn MarinoSupport BMI built-in functions and code generation
508*e4b17023SJohn Marino
509*e4b17023SJohn Marinombmi2
510*e4b17023SJohn MarinoTarget Report Mask(ISA_BMI2) Var(ix86_isa_flags) Save
511*e4b17023SJohn MarinoSupport BMI2 built-in functions and code generation
512*e4b17023SJohn Marino
513*e4b17023SJohn Marinomlzcnt
514*e4b17023SJohn MarinoTarget Report Mask(ISA_LZCNT) Var(ix86_isa_flags) Save
515*e4b17023SJohn MarinoSupport LZCNT built-in function and code generation
516*e4b17023SJohn Marino
517*e4b17023SJohn Marinomtbm
518*e4b17023SJohn MarinoTarget Report Mask(ISA_TBM) Var(ix86_isa_flags) Save
519*e4b17023SJohn MarinoSupport TBM built-in functions and code generation
520*e4b17023SJohn Marino
521*e4b17023SJohn Marinomcx16
522*e4b17023SJohn MarinoTarget Report Mask(ISA_CX16) Var(ix86_isa_flags) Save
523*e4b17023SJohn MarinoSupport code generation of cmpxchg16b instruction.
524*e4b17023SJohn Marino
525*e4b17023SJohn Marinomsahf
526*e4b17023SJohn MarinoTarget Report Mask(ISA_SAHF) Var(ix86_isa_flags) Save
527*e4b17023SJohn MarinoSupport code generation of sahf instruction in 64bit x86-64 code.
528*e4b17023SJohn Marino
529*e4b17023SJohn Marinommovbe
530*e4b17023SJohn MarinoTarget Report Mask(ISA_MOVBE) Var(ix86_isa_flags) Save
531*e4b17023SJohn MarinoSupport code generation of movbe instruction.
532*e4b17023SJohn Marino
533*e4b17023SJohn Marinomcrc32
534*e4b17023SJohn MarinoTarget Report Mask(ISA_CRC32) Var(ix86_isa_flags) Save
535*e4b17023SJohn MarinoSupport code generation of crc32 instruction.
536*e4b17023SJohn Marino
537*e4b17023SJohn Marinomaes
538*e4b17023SJohn MarinoTarget Report Mask(ISA_AES) Var(ix86_isa_flags) Save
539*e4b17023SJohn MarinoSupport AES built-in functions and code generation
540*e4b17023SJohn Marino
541*e4b17023SJohn Marinompclmul
542*e4b17023SJohn MarinoTarget Report Mask(ISA_PCLMUL) Var(ix86_isa_flags) Save
543*e4b17023SJohn MarinoSupport PCLMUL built-in functions and code generation
544*e4b17023SJohn Marino
545*e4b17023SJohn Marinomsse2avx
546*e4b17023SJohn MarinoTarget Report Var(ix86_sse2avx)
547*e4b17023SJohn MarinoEncode SSE instructions with VEX prefix
548*e4b17023SJohn Marino
549*e4b17023SJohn Marinomfsgsbase
550*e4b17023SJohn MarinoTarget Report Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
551*e4b17023SJohn MarinoSupport FSGSBASE built-in functions and code generation
552*e4b17023SJohn Marino
553*e4b17023SJohn Marinomrdrnd
554*e4b17023SJohn MarinoTarget Report Mask(ISA_RDRND) Var(ix86_isa_flags) Save
555*e4b17023SJohn MarinoSupport RDRND built-in functions and code generation
556*e4b17023SJohn Marino
557*e4b17023SJohn Marinomf16c
558*e4b17023SJohn MarinoTarget Report Mask(ISA_F16C) Var(ix86_isa_flags) Save
559*e4b17023SJohn MarinoSupport F16C built-in functions and code generation
560*e4b17023SJohn Marino
561*e4b17023SJohn Marinomfentry
562*e4b17023SJohn MarinoTarget Report Var(flag_fentry) Init(-1)
563*e4b17023SJohn MarinoEmit profiling counter call at function entry before prologue.
564*e4b17023SJohn Marino
565*e4b17023SJohn Marinom8bit-idiv
566*e4b17023SJohn MarinoTarget Report Mask(USE_8BIT_IDIV) Save
567*e4b17023SJohn MarinoExpand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check
568*e4b17023SJohn Marino
569*e4b17023SJohn Marinomavx256-split-unaligned-load
570*e4b17023SJohn MarinoTarget Report Mask(AVX256_SPLIT_UNALIGNED_LOAD) Save
571*e4b17023SJohn MarinoSplit 32-byte AVX unaligned load
572*e4b17023SJohn Marino
573*e4b17023SJohn Marinomavx256-split-unaligned-store
574*e4b17023SJohn MarinoTarget Report Mask(AVX256_SPLIT_UNALIGNED_STORE) Save
575*e4b17023SJohn MarinoSplit 32-byte AVX unaligned store
576