2007-05-30 H.J. Lu <hongjiu.lu@intel.com>
[official-gcc.git] / gcc / config / i386 / i386.opt
blob9257ae1ca4d021336a0c08ae502f67623ffc7eb4
1 ; Options for the IA-32 and AMD64 ports of the compiler.
3 ; Copyright (C) 2005, 2006, 2007 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 2, 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 COPYING.  If not, write to the Free
19 ; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
20 ; 02110-1301, USA.
22 m128bit-long-double
23 Target RejectNegative Report Mask(128BIT_LONG_DOUBLE)
24 sizeof(long double) is 16
26 m80387
27 Target Report Mask(80387)
28 Use hardware fp
30 m96bit-long-double
31 Target RejectNegative Report InverseMask(128BIT_LONG_DOUBLE)
32 sizeof(long double) is 12
34 maccumulate-outgoing-args
35 Target Report Mask(ACCUMULATE_OUTGOING_ARGS)
36 Reserve space for outgoing arguments in the function prologue
38 malign-double
39 Target Report Mask(ALIGN_DOUBLE)
40 Align some doubles on dword boundary
42 malign-functions=
43 Target RejectNegative Joined Var(ix86_align_funcs_string)
44 Function starts are aligned to this power of 2
46 malign-jumps=
47 Target RejectNegative Joined Var(ix86_align_jumps_string)
48 Jump targets are aligned to this power of 2
50 malign-loops=
51 Target RejectNegative Joined Var(ix86_align_loops_string)
52 Loop code aligned to this power of 2
54 malign-stringops
55 Target RejectNegative Report InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS)
56 Align destination of the string operations
58 march=
59 Target RejectNegative Joined Var(ix86_arch_string)
60 Generate code for given CPU
62 masm=
63 Target RejectNegative Joined Var(ix86_asm_string)
64 Use given assembler dialect
66 mbranch-cost=
67 Target RejectNegative Joined Var(ix86_branch_cost_string)
68 Branches are this expensive (1-5, arbitrary units)
70 mlarge-data-threshold=
71 Target RejectNegative Joined Var(ix86_section_threshold_string)
72 Data greater than given threshold will go into .ldata section in x86-64 medium model
74 mcmodel=
75 Target RejectNegative Joined Var(ix86_cmodel_string)
76 Use given x86-64 code model
78 mfancy-math-387
79 Target RejectNegative Report InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387)
80 Generate sin, cos, sqrt for FPU
82 mfp-ret-in-387
83 Target Report Mask(FLOAT_RETURNS)
84 Return values of functions in FPU registers
86 mfpmath=
87 Target RejectNegative Joined Var(ix86_fpmath_string)
88 Generate floating point mathematics using given instruction set
90 mhard-float
91 Target RejectNegative Mask(80387) MaskExists
92 Use hardware fp
94 mieee-fp
95 Target Report Mask(IEEE_FP)
96 Use IEEE math for fp comparisons
98 minline-all-stringops
99 Target Report Mask(INLINE_ALL_STRINGOPS)
100 Inline all known string operations
102 minline-stringops-dynamically
103 Target Report Mask(INLINE_STRINGOPS_DYNAMICALLY)
104 Inline memset/memcpy string operations, but perform inline version only for small blocks
106 mintel-syntax
107 Target Undocumented
108 ;; Deprecated
110 mms-bitfields
111 Target Report Mask(MS_BITFIELD_LAYOUT)
112 Use native (MS) bitfield layout
114 mno-align-stringops
115 Target RejectNegative Report Mask(NO_ALIGN_STRINGOPS) Undocumented
117 mno-fancy-math-387
118 Target RejectNegative Report Mask(NO_FANCY_MATH_387) Undocumented
120 mno-push-args
121 Target RejectNegative Report Mask(NO_PUSH_ARGS) Undocumented
123 mno-red-zone
124 Target RejectNegative Report Mask(NO_RED_ZONE) Undocumented
126 momit-leaf-frame-pointer
127 Target Report Mask(OMIT_LEAF_FRAME_POINTER)
128 Omit the frame pointer in leaf functions
131 Target RejectNegative Report Joined Var(ix87_precision_string)
132 Set 80387 floating-point precision (-mpc32, -mpc64, -mpc80)
134 mpreferred-stack-boundary=
135 Target RejectNegative Joined Var(ix86_preferred_stack_boundary_string)
136 Attempt to keep stack aligned to this power of 2
138 mpush-args
139 Target Report InverseMask(NO_PUSH_ARGS, PUSH_ARGS)
140 Use push instructions to save outgoing arguments
142 mred-zone
143 Target RejectNegative Report InverseMask(NO_RED_ZONE, RED_ZONE)
144 Use red-zone in the x86-64 code
146 mregparm=
147 Target RejectNegative Joined Var(ix86_regparm_string)
148 Number of registers used to pass integer arguments
150 mrtd
151 Target Report Mask(RTD)
152 Alternate calling convention
154 msoft-float
155 Target InverseMask(80387)
156 Do not use hardware fp
158 msseregparm
159 Target RejectNegative Mask(SSEREGPARM)
160 Use SSE register passing conventions for SF and DF mode
162 mstackrealign
163 Target Report Var(ix86_force_align_arg_pointer)
164 Realign stack in prologue
166 mstack-arg-probe
167 Target Report Mask(STACK_PROBE)
168 Enable stack probing
170 mstringop-strategy=
171 Target RejectNegative Joined Var(ix86_stringop_string)
172 Chose strategy to generate stringop using
174 mtls-dialect=
175 Target RejectNegative Joined Var(ix86_tls_dialect_string)
176 Use given thread-local storage dialect
178 mtls-direct-seg-refs
179 Target Report Mask(TLS_DIRECT_SEG_REFS)
180 Use direct references against %gs when accessing tls data
182 mtune=
183 Target RejectNegative Joined Var(ix86_tune_string)
184 Schedule code for given CPU
186 ;; ISA support
189 Target RejectNegative Negative(m64) Report InverseMask(ISA_64BIT) Var(ix86_isa_flags) VarExists
190 Generate 32bit i386 code
193 Target RejectNegative Negative(m32) Report Mask(ISA_64BIT) Var(ix86_isa_flags) VarExists
194 Generate 64bit x86-64 code
196 mmmx
197 Target Report Mask(ISA_MMX) Var(ix86_isa_flags) VarExists
198 Support MMX built-in functions
200 m3dnow
201 Target Report Mask(ISA_3DNOW) Var(ix86_isa_flags) VarExists
202 Support 3DNow! built-in functions
204 m3dnowa
205 Target Undocumented Mask(ISA_3DNOW_A) Var(ix86_isa_flags) VarExists
206 Support Athlon 3Dnow! built-in functions
208 msse
209 Target Report Mask(ISA_SSE) Var(ix86_isa_flags) VarExists
210 Support MMX and SSE built-in functions and code generation
212 msse2
213 Target Report Mask(ISA_SSE2) Var(ix86_isa_flags) VarExists
214 Support MMX, SSE and SSE2 built-in functions and code generation
216 msse3
217 Target Report Mask(ISA_SSE3) Var(ix86_isa_flags) VarExists
218 Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation
220 mssse3
221 Target Report Mask(ISA_SSSE3) Var(ix86_isa_flags) VarExists
222 Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation
224 msse4.1
225 Target Report Mask(ISA_SSE4_1) Var(ix86_isa_flags) VarExists
226 Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation
228 msse4a
229 Target Report Mask(ISA_SSE4A) Var(ix86_isa_flags) VarExists
230 Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation
232 ;; Instruction support
234 mabm
235 Target Report RejectNegative Var(x86_abm)
236 Support code generation of Advanced Bit Manipulation (ABM) instructions.
238 mcx16
239 Target Report RejectNegative Var(x86_cmpxchg16b)
240 Support code generation of cmpxchg16b instruction.
242 mpopcnt
243 Target Report RejectNegative Var(x86_popcnt)
244 Support code generation of popcnt instruction.
246 msahf
247 Target Report RejectNegative Var(x86_sahf)
248 Support code generation of sahf instruction in 64bit x86-64 code.