Merged with mainline at revision 128810.
[official-gcc.git] / gcc / config / rs6000 / rs6000.opt
blobc552a03c8fa7f510ae4f915b3aaf0b8ff0f3ddc2
1 ; Options for the rs6000 port of the compiler
3 ; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
4 ; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
6 ; This file is part of GCC.
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.
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.
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/>.
22 mpower
23 Target Report RejectNegative Mask(POWER)
24 Use POWER instruction set
26 mno-power
27 Target Report RejectNegative
28 Do not use POWER instruction set
30 mpower2
31 Target Report Mask(POWER2)
32 Use POWER2 instruction set
34 mpowerpc
35 Target Report RejectNegative Mask(POWERPC)
36 Use PowerPC instruction set
38 mno-powerpc
39 Target Report RejectNegative
40 Do not use PowerPC instruction set
42 mpowerpc64
43 Target Report Mask(POWERPC64)
44 Use PowerPC-64 instruction set
46 mpowerpc-gpopt
47 Target Report Mask(PPC_GPOPT)
48 Use PowerPC General Purpose group optional instructions
50 mpowerpc-gfxopt
51 Target Report Mask(PPC_GFXOPT)
52 Use PowerPC Graphics group optional instructions
54 mmfcrf
55 Target Report Mask(MFCRF)
56 Use PowerPC V2.01 single field mfcr instruction
58 mpopcntb
59 Target Report Mask(POPCNTB)
60 Use PowerPC V2.02 popcntb instruction
62 mfprnd
63 Target Report Mask(FPRND)
64 Use PowerPC V2.02 floating point rounding instructions
66 mcmpb
67 Target Report Mask(CMPB)
68 Use PowerPC V2.05 compare bytes instruction
70 mmfpgpr
71 Target Report Mask(MFPGPR)
72 Use extended PowerPC V2.05 move floating point to/from GPR instructions
74 maltivec
75 Target Report Mask(ALTIVEC)
76 Use AltiVec instructions
78 mdfp
79 Target Report Mask(DFP)
80 Use decimal floating point instructions
82 mmulhw
83 Target Report Mask(MULHW)
84 Use 4xx half-word multiply instructions
86 mdlmzb
87 Target Report Mask(DLMZB)
88 Use 4xx string-search dlmzb instruction
90 mmultiple
91 Target Report Mask(MULTIPLE)
92 Generate load/store multiple instructions
94 mstring
95 Target Report Mask(STRING)
96 Generate string instructions for block moves
98 mnew-mnemonics
99 Target Report RejectNegative Mask(NEW_MNEMONICS)
100 Use new mnemonics for PowerPC architecture
102 mold-mnemonics
103 Target Report RejectNegative InverseMask(NEW_MNEMONICS)
104 Use old mnemonics for PowerPC architecture
106 msoft-float
107 Target Report RejectNegative Mask(SOFT_FLOAT)
108 Do not use hardware floating point
110 mhard-float
111 Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
112 Use hardware floating point
114 mno-update
115 Target Report RejectNegative Mask(NO_UPDATE)
116 Do not generate load/store with update instructions
118 mupdate
119 Target Report RejectNegative InverseMask(NO_UPDATE, UPDATE)
120 Generate load/store with update instructions
122 mno-fused-madd
123 Target Report RejectNegative Mask(NO_FUSED_MADD)
124 Do not generate fused multiply/add instructions
126 mfused-madd
127 Target Report RejectNegative InverseMask(NO_FUSED_MADD, FUSED_MADD)
128 Generate fused multiply/add instructions
130 msched-prolog
131 Target Report Var(TARGET_SCHED_PROLOG) Init(1)
132 Schedule the start and end of the procedure
134 msched-epilog
135 Target Undocumented Var(TARGET_SCHED_PROLOG) VarExists
137 maix-struct-return
138 Target Report RejectNegative Var(aix_struct_return)
139 Return all structures in memory (AIX default)
141 msvr4-struct-return
142 Target Report RejectNegative Var(aix_struct_return,0) VarExists
143 Return small structures in registers (SVR4 default)
145 mxl-compat
146 Target Report Var(TARGET_XL_COMPAT)
147 Conform more closely to IBM XLC semantics
149 mrecip
150 Target Report Var(TARGET_RECIP)
151 Generate software reciprocal sqrt for better throughput
153 mno-fp-in-toc
154 Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC)
155 Do not place floating point constants in TOC
157 mfp-in-toc
158 Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC,0)
159 Place floating point constants in TOC
161 mno-sum-in-toc
162 Target RejectNegative Var(TARGET_NO_SUM_IN_TOC)
163 Do not place symbol+offset constants in TOC
165 msum-in-toc
166 Target RejectNegative Var(TARGET_NO_SUM_IN_TOC,0) VarExists
167 Place symbol+offset constants in TOC
169 ;  Output only one TOC entry per module.  Normally linking fails if
170 ;   there are more than 16K unique variables/constants in an executable.  With
171 ;   this option, linking fails only if there are more than 16K modules, or
172 ;   if there are more than 16K unique variables/constant in a single module.
174 ;   This is at the cost of having 2 extra loads and one extra store per
175 ;   function, and one less allocable register.
176 mminimal-toc
177 Target Report Mask(MINIMAL_TOC)
178 Use only one TOC entry per procedure
180 mfull-toc
181 Target Report
182 Put everything in the regular TOC
184 mvrsave
185 Target Report Var(TARGET_ALTIVEC_VRSAVE)
186 Generate VRSAVE instructions when generating AltiVec code
188 mvrsave=
189 Target RejectNegative Joined
190 -mvrsave=yes/no Deprecated option.  Use -mvrsave/-mno-vrsave instead
192 misel
193 Target Var(rs6000_isel)
194 Generate isel instructions
196 misel=
197 Target RejectNegative Joined
198 -misel=yes/no   Deprecated option.  Use -misel/-mno-isel instead
200 mspe
201 Target Var(rs6000_spe)
202 Generate SPE SIMD instructions on E500
204 mpaired
205 Target Var(rs6000_paired_float)
206 Generate PPC750CL paired-single instructions
208 mspe=
209 Target RejectNegative Joined
210 -mspe=yes/no    Deprecated option.  Use -mspe/-mno-spe instead
212 mdebug=
213 Target RejectNegative Joined
214 -mdebug=        Enable debug output
216 mabi=
217 Target RejectNegative Joined
218 -mabi=  Specify ABI to use
220 mcpu=
221 Target RejectNegative Joined
222 -mcpu=  Use features of and schedule code for given CPU
224 mtune=
225 Target RejectNegative Joined
226 -mtune= Schedule code for given CPU
228 mtraceback=
229 Target RejectNegative Joined
230 -mtraceback=    Select full, part, or no traceback table
232 mlongcall
233 Target Report Var(rs6000_default_long_calls)
234 Avoid all range limits on call instructions
236 mwarn-altivec-long
237 Target Var(rs6000_warn_altivec_long) Init(1)
238 Warn about deprecated 'vector long ...' AltiVec type usage
240 mfloat-gprs=
241 Target RejectNegative Joined
242 -mfloat-gprs=   Select GPR floating point method
244 mlong-double-
245 Target RejectNegative Joined UInteger
246 -mlong-double-<n>       Specify size of long double (64 or 128 bits)
248 msched-costly-dep=
249 Target RejectNegative Joined 
250 Determine which dependences between insns are considered costly
252 minsert-sched-nops=
253 Target RejectNegative Joined
254 Specify which post scheduling nop insertion scheme to apply
256 malign-
257 Target RejectNegative Joined
258 Specify alignment of structure fields default/natural
260 mprioritize-restricted-insns=
261 Target RejectNegative Joined UInteger Var(rs6000_sched_restricted_insns_priority)
262 Specify scheduling priority for dispatch slot restricted insns