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