1169689Skan; Options for the IA-32 and AMD64 ports of the compiler.
2169689Skan
3251212Spfg; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
4169689Skan;
5169689Skan; This file is part of GCC.
6169689Skan;
7169689Skan; GCC is free software; you can redistribute it and/or modify it under
8169689Skan; the terms of the GNU General Public License as published by the Free
9169689Skan; Software Foundation; either version 2, or (at your option) any later
10169689Skan; version.
11169689Skan;
12169689Skan; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13169689Skan; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14169689Skan; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15169689Skan; for more details.
16169689Skan;
17169689Skan; You should have received a copy of the GNU General Public License
18169689Skan; along with GCC; see the file COPYING.  If not, write to the Free
19169689Skan; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
20169689Skan; 02110-1301, USA.
21169689Skan
22169689Skanm128bit-long-double
23169689SkanTarget RejectNegative Report Mask(128BIT_LONG_DOUBLE)
24169689Skansizeof(long double) is 16
25169689Skan
26169689Skanm32
27169689SkanTarget RejectNegative Negative(m64) Report InverseMask(64BIT)
28169689SkanGenerate 32bit i386 code
29169689Skan
30169689Skanm386
31169689SkanTarget RejectNegative Undocumented
32169689Skan;; Deprecated
33169689Skan
34169689Skanm3dnow
35169689SkanTarget Report Mask(3DNOW)
36169689SkanSupport 3DNow! built-in functions
37169689Skan
38169689Skanm486
39169689SkanTarget RejectNegative Undocumented
40169689Skan;; Deprecated
41169689Skan
42169689Skanm64
43169689SkanTarget RejectNegative Negative(m32) Report Mask(64BIT)
44169689SkanGenerate 64bit x86-64 code
45169689Skan
46169689Skanm80387
47169689SkanTarget Report Mask(80387)
48169689SkanUse hardware fp
49169689Skan
50169689Skanm96bit-long-double
51169689SkanTarget RejectNegative Report InverseMask(128BIT_LONG_DOUBLE)
52169689Skansizeof(long double) is 12
53169689Skan
54169689Skanmaccumulate-outgoing-args
55169689SkanTarget Report Mask(ACCUMULATE_OUTGOING_ARGS)
56169689SkanReserve space for outgoing arguments in the function prologue
57169689Skan
58169689Skanmalign-double
59169689SkanTarget Report Mask(ALIGN_DOUBLE)
60169689SkanAlign some doubles on dword boundary
61169689Skan
62169689Skanmalign-functions=
63169689SkanTarget RejectNegative Joined Var(ix86_align_funcs_string)
64169689SkanFunction starts are aligned to this power of 2
65169689Skan
66169689Skanmalign-jumps=
67169689SkanTarget RejectNegative Joined Var(ix86_align_jumps_string)
68169689SkanJump targets are aligned to this power of 2
69169689Skan
70169689Skanmalign-loops=
71169689SkanTarget RejectNegative Joined Var(ix86_align_loops_string)
72169689SkanLoop code aligned to this power of 2
73169689Skan
74169689Skanmalign-stringops
75169689SkanTarget RejectNegative Report InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS)
76169689SkanAlign destination of the string operations
77169689Skan
78169689Skanmarch=
79169689SkanTarget RejectNegative Joined Var(ix86_arch_string)
80169689SkanGenerate code for given CPU
81169689Skan
82169689Skanmasm=
83169689SkanTarget RejectNegative Joined Var(ix86_asm_string)
84169689SkanUse given assembler dialect
85169689Skan
86169689Skanmbranch-cost=
87169689SkanTarget RejectNegative Joined Var(ix86_branch_cost_string)
88169689SkanBranches are this expensive (1-5, arbitrary units)
89169689Skan
90169689Skanmlarge-data-threshold=
91169689SkanTarget RejectNegative Joined Var(ix86_section_threshold_string)
92169689SkanData greater than given threshold will go into .ldata section in x86-64 medium model
93169689Skan
94169689Skanmcmodel=
95169689SkanTarget RejectNegative Joined Var(ix86_cmodel_string)
96169689SkanUse given x86-64 code model
97169689Skan
98169689Skanmdebug-addr
99169689SkanTarget RejectNegative Var(TARGET_DEBUG_ADDR) Undocumented
100169689Skan
101169689Skanmdebug-arg
102169689SkanTarget RejectNegative Var(TARGET_DEBUG_ARG) Undocumented
103169689Skan
104169689Skanmfancy-math-387
105169689SkanTarget RejectNegative Report InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387)
106169689SkanGenerate sin, cos, sqrt for FPU
107169689Skan
108169689Skanmfp-ret-in-387
109169689SkanTarget Report Mask(FLOAT_RETURNS)
110169689SkanReturn values of functions in FPU registers
111169689Skan
112169689Skanmfpmath=
113169689SkanTarget RejectNegative Joined Var(ix86_fpmath_string)
114169689SkanGenerate floating point mathematics using given instruction set
115169689Skan
116169689Skanmhard-float
117169689SkanTarget RejectNegative Mask(80387) MaskExists
118169689SkanUse hardware fp
119169689Skan
120169689Skanmieee-fp
121169689SkanTarget Report Mask(IEEE_FP)
122169689SkanUse IEEE math for fp comparisons
123169689Skan
124169689Skanminline-all-stringops
125169689SkanTarget Report Mask(INLINE_ALL_STRINGOPS)
126169689SkanInline all known string operations
127169689Skan
128169689Skanmintel-syntax
129169689SkanTarget Undocumented
130169689Skan;; Deprecated
131169689Skan
132169689Skanmmmx
133169689SkanTarget Report Mask(MMX)
134169689SkanSupport MMX built-in functions
135169689Skan
136169689Skanmms-bitfields
137169689SkanTarget Report Mask(MS_BITFIELD_LAYOUT)
138169689SkanUse native (MS) bitfield layout
139169689Skan
140169689Skanmno-align-stringops
141169689SkanTarget RejectNegative Report Mask(NO_ALIGN_STRINGOPS) Undocumented
142169689Skan
143169689Skanmno-fancy-math-387
144169689SkanTarget RejectNegative Report Mask(NO_FANCY_MATH_387) Undocumented
145169689Skan
146169689Skanmno-push-args
147169689SkanTarget RejectNegative Report Mask(NO_PUSH_ARGS) Undocumented
148169689Skan
149169689Skanmno-red-zone
150169689SkanTarget RejectNegative Report Mask(NO_RED_ZONE) Undocumented
151169689Skan
152169689Skanmomit-leaf-frame-pointer
153169689SkanTarget Report Mask(OMIT_LEAF_FRAME_POINTER)
154169689SkanOmit the frame pointer in leaf functions
155169689Skan
156169689Skanmpentium
157169689SkanTarget RejectNegative Undocumented
158169689Skan;; Deprecated
159169689Skan
160169689Skanmpentiumpro
161169689SkanTarget RejectNegative Undocumented
162169689Skan;; Deprecated
163169689Skan
164169689Skanmpreferred-stack-boundary=
165169689SkanTarget RejectNegative Joined Var(ix86_preferred_stack_boundary_string)
166169689SkanAttempt to keep stack aligned to this power of 2
167169689Skan
168169689Skanmpush-args
169169689SkanTarget Report InverseMask(NO_PUSH_ARGS, PUSH_ARGS)
170169689SkanUse push instructions to save outgoing arguments
171169689Skan
172169689Skanmred-zone
173169689SkanTarget RejectNegative Report InverseMask(NO_RED_ZONE, RED_ZONE)
174169689SkanUse red-zone in the x86-64 code
175169689Skan
176169689Skanmregparm=
177169689SkanTarget RejectNegative Joined Var(ix86_regparm_string)
178169689SkanNumber of registers used to pass integer arguments
179169689Skan
180169689Skanmrtd
181169689SkanTarget Report Mask(RTD)
182169689SkanAlternate calling convention
183169689Skan
184169689Skanmsoft-float
185169689SkanTarget InverseMask(80387)
186169689SkanDo not use hardware fp
187169689Skan
188169689Skanmsse
189169689SkanTarget Report Mask(SSE)
190169689SkanSupport MMX and SSE built-in functions and code generation
191169689Skan
192169689Skanmsse2
193169689SkanTarget Report Mask(SSE2)
194169689SkanSupport MMX, SSE and SSE2 built-in functions and code generation
195169689Skan
196169689Skanmsse3
197169689SkanTarget Report Mask(SSE3)
198169689SkanSupport MMX, SSE, SSE2 and SSE3 built-in functions and code generation
199169689Skan
200219639Smmmssse3
201219639SmmTarget Report Mask(SSSE3)
202219639SmmSupport MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation
203219639Smm
204251212Spfgmsse4a
205251212SpfgTarget Report Mask(SSE4A)
206251212SpfgSupport MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation
207251212Spfg
208255185Sjmgmaes
209255185SjmgTarget Report Mask(AES)
210255185SjmgSupport AES built-in functions and code generation.
211255185Sjmg
212251212Spfgmpopcnt
213251212SpfgTarget Report Mask(POPCNT)
214251212SpfgSupport code generation of popcount instruction for popcount built-ins 
215251212Spfgnamely __builtin_popcount, __builtin_popcountl and __builtin_popcountll
216251212Spfg
217251212Spfgmabm
218251212SpfgTarget Report Mask(ABM)
219251212SpfgSupport code generation of Advanced Bit Manipulation (ABM) instructions,
220251212Spfgwhich include popcnt and lzcnt instructions, for popcount and clz built-ins
221251212Spfgnamely __builtin_popcount, __builtin_popcountl, __builtin_popcountll and
222251212Spfg__builtin_clz, __builtin_clzl, __builtin_clzll
223251212Spfg
224169689Skanmsseregparm
225169689SkanTarget RejectNegative Mask(SSEREGPARM)
226169689SkanUse SSE register passing conventions for SF and DF mode
227169689Skan
228169689Skanmstackrealign
229169689SkanTarget Report Var(ix86_force_align_arg_pointer)
230169689SkanRealign stack in prologue
231169689Skan
232169689Skanmsvr3-shlib
233169689SkanTarget Report Mask(SVR3_SHLIB)
234169689SkanUninitialized locals in .bss
235169689Skan
236169689Skanmstack-arg-probe
237169689SkanTarget Report Mask(STACK_PROBE)
238169689SkanEnable stack probing
239169689Skan
240169689Skanmtls-dialect=
241169689SkanTarget RejectNegative Joined Var(ix86_tls_dialect_string)
242169689SkanUse given thread-local storage dialect
243169689Skan
244169689Skanmtls-direct-seg-refs
245169689SkanTarget Report Mask(TLS_DIRECT_SEG_REFS)
246169689SkanUse direct references against %gs when accessing tls data
247169689Skan
248169689Skanmtune=
249169689SkanTarget RejectNegative Joined Var(ix86_tune_string)
250169689SkanSchedule code for given CPU
251169689Skan
252169689Skan;; Support Athlon 3Dnow builtins
253169689SkanMask(3DNOW_A)
254