OSDN Git Service

* optc-gen.awk: Define global_options_set. Don't define
[pf3gnuchains/gcc-fork.git] / gcc / config / i386 / i386.opt
1 ; Options for the IA-32 and AMD64 ports of the compiler.
2
3 ; Copyright (C) 2005, 2006, 2007, 2008, 2009,
4 ; 2010 Free Software Foundation, Inc.
5 ;
6 ; This file is part of GCC.
7 ;
8 ; GCC is free software; you can redistribute it and/or modify it under
9 ; the terms of the GNU General Public License as published by the Free
10 ; Software Foundation; either version 3, or (at your option) any later
11 ; version.
12 ;
13 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16 ; for more details.
17 ;
18 ; You should have received a copy of the GNU General Public License
19 ; along with GCC; see the file COPYING3.  If not see
20 ; <http://www.gnu.org/licenses/>.
21
22 ; Bit flags that specify the ISA we are compiling for.
23 Variable
24 int ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT
25
26 ;; Definitions to add to the cl_target_option structure
27 ;; -march= processor
28 TargetSave
29 unsigned char arch
30
31 ;; -mtune= processor
32 TargetSave
33 unsigned char tune
34
35 ;; -mfpath=
36 TargetSave
37 unsigned char fpmath
38
39 ;; CPU schedule model
40 TargetSave
41 unsigned char schedule
42
43 ;; branch cost
44 TargetSave
45 unsigned char branch_cost
46
47 ;; which flags were passed by the user
48 TargetSave
49 int ix86_isa_flags_explicit
50
51 ;; which flags were passed by the user
52 TargetSave
53 int ix86_target_flags_explicit
54
55 ;; whether -mtune was not specified
56 TargetSave
57 unsigned char tune_defaulted
58
59 ;; whether -march was specified
60 TargetSave
61 unsigned char arch_specified
62
63 ;; x86 options
64 m128bit-long-double
65 Target RejectNegative Report Mask(128BIT_LONG_DOUBLE) Save
66 sizeof(long double) is 16
67
68 m80387
69 Target Report Mask(80387) Save
70 Use hardware fp
71
72 m96bit-long-double
73 Target RejectNegative Report InverseMask(128BIT_LONG_DOUBLE) Save
74 sizeof(long double) is 12
75
76 maccumulate-outgoing-args
77 Target Report Mask(ACCUMULATE_OUTGOING_ARGS) Save
78 Reserve space for outgoing arguments in the function prologue
79
80 malign-double
81 Target Report Mask(ALIGN_DOUBLE) Save
82 Align some doubles on dword boundary
83
84 malign-functions=
85 Target RejectNegative Joined Var(ix86_align_funcs_string)
86 Function starts are aligned to this power of 2
87
88 malign-jumps=
89 Target RejectNegative Joined Var(ix86_align_jumps_string)
90 Jump targets are aligned to this power of 2
91
92 malign-loops=
93 Target RejectNegative Joined Var(ix86_align_loops_string)
94 Loop code aligned to this power of 2
95
96 malign-stringops
97 Target RejectNegative Report InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS) Save
98 Align destination of the string operations
99
100 march=
101 Target RejectNegative Joined Var(ix86_arch_string)
102 Generate code for given CPU
103
104 masm=
105 Target RejectNegative Joined Var(ix86_asm_string)
106 Use given assembler dialect
107
108 mbranch-cost=
109 Target RejectNegative Joined Var(ix86_branch_cost_string)
110 Branches are this expensive (1-5, arbitrary units)
111
112 mlarge-data-threshold=
113 Target RejectNegative Joined Var(ix86_section_threshold_string)
114 Data greater than given threshold will go into .ldata section in x86-64 medium model
115
116 mcmodel=
117 Target RejectNegative Joined Var(ix86_cmodel_string)
118 Use given x86-64 code model
119
120 mcpu=
121 Target RejectNegative Joined Undocumented Alias(mtune=) Warn(%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead)
122
123 mfancy-math-387
124 Target RejectNegative Report InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387) Save
125 Generate sin, cos, sqrt for FPU
126
127 mforce-drap
128 Target Report Var(ix86_force_drap)
129 Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack
130
131 mfp-ret-in-387
132 Target Report Mask(FLOAT_RETURNS) Save
133 Return values of functions in FPU registers
134
135 mfpmath=
136 Target RejectNegative Joined Var(ix86_fpmath_string)
137 Generate floating point mathematics using given instruction set
138
139 mhard-float
140 Target RejectNegative Mask(80387) MaskExists Save
141 Use hardware fp
142
143 mieee-fp
144 Target Report Mask(IEEE_FP) Save
145 Use IEEE math for fp comparisons
146
147 minline-all-stringops
148 Target Report Mask(INLINE_ALL_STRINGOPS) Save
149 Inline all known string operations
150
151 minline-stringops-dynamically
152 Target Report Mask(INLINE_STRINGOPS_DYNAMICALLY) Save
153 Inline memset/memcpy string operations, but perform inline version only for small blocks
154
155 mintel-syntax
156 Target Undocumented Alias(masm=, intel, att) Warn(%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead)
157 ;; Deprecated
158
159 mms-bitfields
160 Target Report Mask(MS_BITFIELD_LAYOUT) Save
161 Use native (MS) bitfield layout
162
163 mno-align-stringops
164 Target RejectNegative Report Mask(NO_ALIGN_STRINGOPS) Undocumented Save
165
166 mno-fancy-math-387
167 Target RejectNegative Report Mask(NO_FANCY_MATH_387) Undocumented Save
168
169 mno-push-args
170 Target RejectNegative Report Mask(NO_PUSH_ARGS) Undocumented Save
171
172 mno-red-zone
173 Target RejectNegative Report Mask(NO_RED_ZONE) Undocumented Save
174
175 momit-leaf-frame-pointer
176 Target Report Mask(OMIT_LEAF_FRAME_POINTER) Save
177 Omit the frame pointer in leaf functions
178
179 mpc
180 Target RejectNegative Report Joined Var(ix87_precision_string)
181 Set 80387 floating-point precision (-mpc32, -mpc64, -mpc80)
182
183 mpreferred-stack-boundary=
184 Target RejectNegative Joined Var(ix86_preferred_stack_boundary_string)
185 Attempt to keep stack aligned to this power of 2
186
187 mincoming-stack-boundary=
188 Target RejectNegative Joined Var(ix86_incoming_stack_boundary_string)
189 Assume incoming stack aligned to this power of 2
190
191 mpush-args
192 Target Report InverseMask(NO_PUSH_ARGS, PUSH_ARGS) Save
193 Use push instructions to save outgoing arguments
194
195 mred-zone
196 Target RejectNegative Report InverseMask(NO_RED_ZONE, RED_ZONE) Save
197 Use red-zone in the x86-64 code
198
199 mregparm=
200 Target RejectNegative Joined Var(ix86_regparm_string)
201 Number of registers used to pass integer arguments
202
203 mrtd
204 Target Report Mask(RTD) Save
205 Alternate calling convention
206
207 msoft-float
208 Target InverseMask(80387) Save
209 Do not use hardware fp
210
211 msseregparm
212 Target RejectNegative Mask(SSEREGPARM) Save
213 Use SSE register passing conventions for SF and DF mode
214
215 mstackrealign
216 Target Report Var(ix86_force_align_arg_pointer) Init(-1)
217 Realign stack in prologue
218
219 mstack-arg-probe
220 Target Report Mask(STACK_PROBE) Save
221 Enable stack probing
222
223 mstringop-strategy=
224 Target RejectNegative Joined Var(ix86_stringop_string)
225 Chose strategy to generate stringop using
226
227 mtls-dialect=
228 Target RejectNegative Joined Var(ix86_tls_dialect_string)
229 Use given thread-local storage dialect
230
231 mtls-direct-seg-refs
232 Target Report Mask(TLS_DIRECT_SEG_REFS)
233 Use direct references against %gs when accessing tls data
234
235 mtune=
236 Target RejectNegative Joined Var(ix86_tune_string)
237 Schedule code for given CPU
238
239 mabi=
240 Target RejectNegative Joined Var(ix86_abi_string)
241 Generate code that conforms to the given ABI
242
243 mveclibabi=
244 Target RejectNegative Joined Var(ix86_veclibabi_string)
245 Vector library ABI to use
246
247 mvect8-ret-in-mem
248 Target Report Mask(VECT8_RETURNS) Save
249 Return 8-byte vectors in memory
250
251 mrecip
252 Target Report Mask(RECIP) Save
253 Generate reciprocals instead of divss and sqrtss.
254
255 mcld
256 Target Report Mask(CLD) Save
257 Generate cld instruction in the function prologue.
258
259 mfused-madd
260 Target Report Mask(FUSED_MADD) Save
261 Enable automatic generation of fused floating point multiply-add instructions
262 if the ISA supports such instructions.  The -mfused-madd option is on by
263 default.
264
265 mdispatch-scheduler
266 Target RejectNegative Var(flag_dispatch_scheduler)
267 Do dispatch scheduling if processor is bdver1 and Haifa scheduling
268 is selected.
269
270 ;; ISA support
271
272 m32
273 Target RejectNegative Negative(m64) Report InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
274 Generate 32bit i386 code
275
276 m64
277 Target RejectNegative Negative(m32) Report Mask(ISA_64BIT) Var(ix86_isa_flags) Save
278 Generate 64bit x86-64 code
279
280 mmmx
281 Target Report Mask(ISA_MMX) Var(ix86_isa_flags) Save
282 Support MMX built-in functions
283
284 m3dnow
285 Target Report Mask(ISA_3DNOW) Var(ix86_isa_flags) Save
286 Support 3DNow! built-in functions
287
288 m3dnowa
289 Target Undocumented Mask(ISA_3DNOW_A) Var(ix86_isa_flags) Save
290 Support Athlon 3Dnow! built-in functions
291
292 msse
293 Target Report Mask(ISA_SSE) Var(ix86_isa_flags) Save
294 Support MMX and SSE built-in functions and code generation
295
296 msse2
297 Target Report Mask(ISA_SSE2) Var(ix86_isa_flags) Save
298 Support MMX, SSE and SSE2 built-in functions and code generation
299
300 msse3
301 Target Report Mask(ISA_SSE3) Var(ix86_isa_flags) Save
302 Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation
303
304 mssse3
305 Target Report Mask(ISA_SSSE3) Var(ix86_isa_flags) Save
306 Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation
307
308 msse4.1
309 Target Report Mask(ISA_SSE4_1) Var(ix86_isa_flags) Save
310 Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation
311
312 msse4.2
313 Target Report Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
314 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation
315
316 msse4
317 Target RejectNegative Report Mask(ISA_SSE4_2) MaskExists Var(ix86_isa_flags) Save
318 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation
319
320 mno-sse4
321 Target RejectNegative Report InverseMask(ISA_SSE4_1) MaskExists Var(ix86_isa_flags) Save
322 Do not support SSE4.1 and SSE4.2 built-in functions and code generation
323
324 mavx
325 Target Report Mask(ISA_AVX) Var(ix86_isa_flags)
326 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation
327
328 mfma
329 Target Report Mask(ISA_FMA) Var(ix86_isa_flags)
330 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation
331
332 msse4a
333 Target Report Mask(ISA_SSE4A) Var(ix86_isa_flags) Save
334 Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation
335
336 mfma4
337 Target Report Mask(ISA_FMA4) Var(ix86_isa_flags) Save
338 Support FMA4 built-in functions and code generation 
339
340 mxop
341 Target Report Mask(ISA_XOP) Var(ix86_isa_flags) Save
342 Support XOP built-in functions and code generation 
343
344 mlwp
345 Target Report Mask(ISA_LWP) Var(ix86_isa_flags) Save
346 Support LWP built-in functions and code generation 
347
348 mabm
349 Target Report Mask(ISA_ABM) Var(ix86_isa_flags) Save
350 Support code generation of Advanced Bit Manipulation (ABM) instructions.
351
352 mpopcnt
353 Target Report Mask(ISA_POPCNT) Var(ix86_isa_flags) Save
354 Support code generation of popcnt instruction.
355
356 mcx16
357 Target Report Mask(ISA_CX16) Var(ix86_isa_flags) Save
358 Support code generation of cmpxchg16b instruction.
359
360 msahf
361 Target Report Mask(ISA_SAHF) Var(ix86_isa_flags) Save
362 Support code generation of sahf instruction in 64bit x86-64 code.
363
364 mmovbe
365 Target Report Mask(ISA_MOVBE) Var(ix86_isa_flags) Save
366 Support code generation of movbe instruction.
367
368 mcrc32
369 Target Report Mask(ISA_CRC32) Var(ix86_isa_flags) Save
370 Support code generation of crc32 instruction.
371
372 maes
373 Target Report Mask(ISA_AES) Var(ix86_isa_flags) Save
374 Support AES built-in functions and code generation
375
376 mpclmul
377 Target Report Mask(ISA_PCLMUL) Var(ix86_isa_flags) Save
378 Support PCLMUL built-in functions and code generation
379
380 msse2avx
381 Target Report Var(ix86_sse2avx)
382 Encode SSE instructions with VEX prefix
383
384 mfsgsbase
385 Target Report Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
386 Support FSGSBASE built-in functions and code generation
387
388 mrdrnd
389 Target Report Mask(ISA_RDRND) Var(ix86_isa_flags) Save
390 Support RDRND built-in functions and code generation
391
392 mf16c
393 Target Report Mask(ISA_F16C) Var(ix86_isa_flags) Save
394 Support F16C built-in functions and code generation
395
396 mfentry
397 Target Report Var(flag_fentry) Init(-1)
398 Emit profiling counter call at function entry before prologue.
399
400 m8bit-idiv
401 Target Report Mask(USE_8BIT_IDIV) Save
402 Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check