]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/rs6000/rs6000.opt
options.texi (Variable, Var, Init): Update documentation without reference to VarExists.
[thirdparty/gcc.git] / gcc / config / rs6000 / rs6000.opt
CommitLineData
78f5898b
AH
1; Options for the rs6000 port of the compiler
2;
688e4919
MM
3; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software
4; Foundation, Inc.
78f5898b
AH
5; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
6;
7; This file is part of GCC.
8;
9; GCC is free software; you can redistribute it and/or modify it under
10; the terms of the GNU General Public License as published by the Free
2f83c7d6 11; Software Foundation; either version 3, or (at your option) any later
78f5898b
AH
12; version.
13;
14; GCC is distributed in the hope that it will be useful, but WITHOUT
15; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17; License for more details.
18;
19; You should have received a copy of the GNU General Public License
2f83c7d6
NC
20; along with GCC; see the file COPYING3. If not see
21; <http://www.gnu.org/licenses/>.
78f5898b
AH
22
23mpower
24Target Report RejectNegative Mask(POWER)
25Use POWER instruction set
26
27mno-power
28Target Report RejectNegative
29Do not use POWER instruction set
30
31mpower2
32Target Report Mask(POWER2)
33Use POWER2 instruction set
34
35mpowerpc
36Target Report RejectNegative Mask(POWERPC)
37Use PowerPC instruction set
38
39mno-powerpc
40Target Report RejectNegative
41Do not use PowerPC instruction set
42
43mpowerpc64
44Target Report Mask(POWERPC64)
45Use PowerPC-64 instruction set
46
432218ba
DE
47mpowerpc-gpopt
48Target Report Mask(PPC_GPOPT)
49Use PowerPC General Purpose group optional instructions
50
51mpowerpc-gfxopt
52Target Report Mask(PPC_GFXOPT)
53Use PowerPC Graphics group optional instructions
54
55mmfcrf
56Target Report Mask(MFCRF)
9719f3b7 57Use PowerPC V2.01 single field mfcr instruction
432218ba
DE
58
59mpopcntb
60Target Report Mask(POPCNTB)
9719f3b7
DE
61Use PowerPC V2.02 popcntb instruction
62
63mfprnd
64Target Report Mask(FPRND)
65Use PowerPC V2.02 floating point rounding instructions
432218ba 66
b639c3c2
JJ
67mcmpb
68Target Report Mask(CMPB)
69Use PowerPC V2.05 compare bytes instruction
70
44cd321e
PS
71mmfpgpr
72Target Report Mask(MFPGPR)
73Use extended PowerPC V2.05 move floating point to/from GPR instructions
74
78f5898b
AH
75maltivec
76Target Report Mask(ALTIVEC)
77Use AltiVec instructions
78
47d94c1a 79mhard-dfp
b639c3c2
JJ
80Target Report Mask(DFP)
81Use decimal floating point instructions
82
131aeb82
JM
83mmulhw
84Target Report Mask(MULHW)
85Use 4xx half-word multiply instructions
86
716019c0
JM
87mdlmzb
88Target Report Mask(DLMZB)
89Use 4xx string-search dlmzb instruction
90
432218ba
DE
91mmultiple
92Target Report Mask(MULTIPLE)
93Generate load/store multiple instructions
94
95mstring
96Target Report Mask(STRING)
97Generate string instructions for block moves
98
78f5898b
AH
99mnew-mnemonics
100Target Report RejectNegative Mask(NEW_MNEMONICS)
101Use new mnemonics for PowerPC architecture
102
103mold-mnemonics
104Target Report RejectNegative InverseMask(NEW_MNEMONICS)
105Use old mnemonics for PowerPC architecture
106
78f5898b
AH
107msoft-float
108Target Report RejectNegative Mask(SOFT_FLOAT)
109Do not use hardware floating point
110
111mhard-float
112Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
113Use hardware floating point
114
cacf1ca8
MM
115mpopcntd
116Target Report Mask(POPCNTD)
117Use PowerPC V2.06 popcntd instruction
118
688e4919
MM
119mfriz
120Target Report Var(TARGET_FRIZ) Init(-1)
121Under -ffast-math, generate a FRIZ instruction for (double)(long long) conversions
122
b36cf9d2
MM
123mveclibabi=
124Target RejectNegative Joined Var(rs6000_veclibabi_name)
125Vector library ABI to use
8bcc0304 126
cacf1ca8
MM
127mvsx
128Target Report Mask(VSX)
129Use vector/scalar (VSX) instructions
78f5898b 130
a72c65c7
MM
131mvsx-scalar-double
132Target Undocumented Report Var(TARGET_VSX_SCALAR_DOUBLE) Init(-1)
133; If -mvsx, use VSX arithmetic instructions for scalar double (on by default)
134
135mvsx-scalar-memory
136Target Undocumented Report Var(TARGET_VSX_SCALAR_MEMORY)
137; If -mvsx, use VSX scalar memory reference instructions for scalar double (off by default)
138
139mvsx-align-128
140Target Undocumented Report Var(TARGET_VSX_ALIGN_128)
141; If -mvsx, set alignment to 128 bits instead of 32/64
142
143mallow-movmisalign
144Target Undocumented Var(TARGET_ALLOW_MOVMISALIGN) Init(-1)
145; Allow/disallow the movmisalign in DF/DI vectors
146
147mallow-df-permute
148Target Undocumented Var(TARGET_ALLOW_DF_PERMUTE)
149; Allow/disallow permutation of DF/DI vectors
150
151msched-groups
152Target Undocumented Report Var(TARGET_SCHED_GROUPS) Init(-1)
153; Explicitly set/unset whether rs6000_sched_groups is set
154
155malways-hint
156Target Undocumented Report Var(TARGET_ALWAYS_HINT) Init(-1)
157; Explicitly set/unset whether rs6000_always_hint is set
158
159malign-branch-targets
160Target Undocumented Report Var(TARGET_ALIGN_BRANCH_TARGETS) Init(-1)
161; Explicitly set/unset whether rs6000_align_branch_targets is set
162
29e6733c
MM
163mvectorize-builtins
164Target Undocumented Report Var(TARGET_VECTORIZE_BUILTINS) Init(-1)
165; Explicitly control whether we vectorize the builtins or not.
166
ebde32fd
BE
167mno-update
168Target Report RejectNegative Mask(NO_UPDATE)
169Do not generate load/store with update instructions
170
78f5898b 171mupdate
ebde32fd 172Target Report RejectNegative InverseMask(NO_UPDATE, UPDATE)
78f5898b
AH
173Generate load/store with update instructions
174
001b9eb6
PH
175mavoid-indexed-addresses
176Target Report Var(TARGET_AVOID_XFORM) Init(-1)
177Avoid generation of indexed load/store instructions when possible
178
78f5898b 179mfused-madd
cacf1ca8 180Target Report Var(TARGET_FUSED_MADD) Init(1)
78f5898b
AH
181Generate fused multiply/add instructions
182
9752c4ad
AM
183mtls-markers
184Target Report Var(tls_markers) Init(1)
185Mark __tls_get_addr calls with argument info
186
df4ba119
ILT
187msched-epilog
188Target Undocumented Var(TARGET_SCHED_PROLOG) Init(1)
189
78f5898b 190msched-prolog
f0036cca 191Target Report Var(TARGET_SCHED_PROLOG)
78f5898b
AH
192Schedule the start and end of the procedure
193
78f5898b 194maix-struct-return
df01da37 195Target Report RejectNegative Var(aix_struct_return)
78f5898b
AH
196Return all structures in memory (AIX default)
197
198msvr4-struct-return
f0036cca 199Target Report RejectNegative Var(aix_struct_return,0)
78f5898b
AH
200Return small structures in registers (SVR4 default)
201
432218ba 202mxl-compat
df01da37 203Target Report Var(TARGET_XL_COMPAT)
432218ba 204Conform more closely to IBM XLC semantics
78f5898b 205
9c78b944 206mrecip
92902797
MM
207Target Report
208Generate software reciprocal divide and square root for better throughput.
209
210mrecip=
211Target Report RejectNegative Joined
212Generate software reciprocal divide and square root for better throughput.
213
214mrecip-precision
215Target Report Mask(RECIP_PRECISION)
216Assume that the reciprocal estimate instructions provide more accuracy.
ef765ea9 217
432218ba 218mno-fp-in-toc
d2894ab5 219Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC)
432218ba 220Do not place floating point constants in TOC
78f5898b 221
432218ba 222mfp-in-toc
95dc56a4 223Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC,0)
432218ba
DE
224Place floating point constants in TOC
225
226mno-sum-in-toc
d2894ab5 227Target RejectNegative Var(TARGET_NO_SUM_IN_TOC)
432218ba
DE
228Do not place symbol+offset constants in TOC
229
230msum-in-toc
f0036cca 231Target RejectNegative Var(TARGET_NO_SUM_IN_TOC,0)
432218ba
DE
232Place symbol+offset constants in TOC
233
234; Output only one TOC entry per module. Normally linking fails if
235; there are more than 16K unique variables/constants in an executable. With
236; this option, linking fails only if there are more than 16K modules, or
237; if there are more than 16K unique variables/constant in a single module.
238;
239; This is at the cost of having 2 extra loads and one extra store per
240; function, and one less allocable register.
241mminimal-toc
242Target Report Mask(MINIMAL_TOC)
243Use only one TOC entry per procedure
78f5898b
AH
244
245mfull-toc
246Target Report
247Put everything in the regular TOC
248
249mvrsave
250Target Report Var(TARGET_ALTIVEC_VRSAVE)
251Generate VRSAVE instructions when generating AltiVec code
252
253mvrsave=
254Target RejectNegative Joined
c85ce869 255-mvrsave=yes/no Deprecated option. Use -mvrsave/-mno-vrsave instead
78f5898b 256
d95016e0
NF
257mblock-move-inline-limit=
258Target Report Var(rs6000_block_move_inline_limit) Init(0) RejectNegative Joined UInteger
259Specify how many bytes should be moved inline before calling out to memcpy/memmove
260
78f5898b 261misel
cacf1ca8 262Target Report Mask(ISEL)
78f5898b
AH
263Generate isel instructions
264
265misel=
266Target RejectNegative Joined
267-misel=yes/no Deprecated option. Use -misel/-mno-isel instead
268
269mspe
94f4765c 270Target
78f5898b
AH
271Generate SPE SIMD instructions on E500
272
96038623
DE
273mpaired
274Target Var(rs6000_paired_float)
275Generate PPC750CL paired-single instructions
276
78f5898b
AH
277mspe=
278Target RejectNegative Joined
279-mspe=yes/no Deprecated option. Use -mspe/-mno-spe instead
280
281mdebug=
282Target RejectNegative Joined
283-mdebug= Enable debug output
284
285mabi=
286Target RejectNegative Joined
287-mabi= Specify ABI to use
288
289mcpu=
290Target RejectNegative Joined
291-mcpu= Use features of and schedule code for given CPU
292
293mtune=
294Target RejectNegative Joined
295-mtune= Schedule code for given CPU
296
297mtraceback=
298Target RejectNegative Joined
299-mtraceback= Select full, part, or no traceback table
300
301mlongcall
302Target Report Var(rs6000_default_long_calls)
303Avoid all range limits on call instructions
304
c921bad8
AP
305mgen-cell-microcode
306Target Report Var(rs6000_gen_cell_microcode) Init(-1)
307Generate Cell microcode
308
309mwarn-cell-microcode
310Target Var(rs6000_warn_cell_microcode) Init(0) Warning
13233302 311Warn when a Cell microcoded instruction is emitted
c921bad8 312
78f5898b
AH
313mwarn-altivec-long
314Target Var(rs6000_warn_altivec_long) Init(1)
315Warn about deprecated 'vector long ...' AltiVec type usage
316
317mfloat-gprs=
318Target RejectNegative Joined
c85ce869 319-mfloat-gprs= Select GPR floating point method
78f5898b
AH
320
321mlong-double-
322Target RejectNegative Joined UInteger
323-mlong-double-<n> Specify size of long double (64 or 128 bits)
324
325msched-costly-dep=
326Target RejectNegative Joined
327Determine which dependences between insns are considered costly
328
329minsert-sched-nops=
330Target RejectNegative Joined
331Specify which post scheduling nop insertion scheme to apply
332
333malign-
334Target RejectNegative Joined
335Specify alignment of structure fields default/natural
336
337mprioritize-restricted-insns=
2f828272 338Target RejectNegative Joined UInteger Var(rs6000_sched_restricted_insns_priority)
78f5898b 339Specify scheduling priority for dispatch slot restricted insns
696e45ba
ME
340
341msingle-float
342Target RejectNegative Var(rs6000_single_float)
343Single-precision floating point unit
344
345mdouble-float
346Target RejectNegative Var(rs6000_double_float)
347Double-precision floating point unit
348
349msimple-fpu
350Target RejectNegative Var(rs6000_simple_fpu)
351Floating point unit does not support divide & sqrt
4849e836
DE
352
353mfpu=
354Target RejectNegative Joined
355-mfpu= Specify FP (sp, dp, sp-lite, dp-lite) (implies -mxilinx-fpu)
356
357mxilinx-fpu
358Target Var(rs6000_xilinx_fpu)
359Specify Xilinx FPU.
360
361