1169689Skan; Options for the rs6000 port of the compiler
2169689Skan;
3169689Skan; Copyright (C) 2005 Free Software Foundation, Inc.
4169689Skan; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
5169689Skan;
6169689Skan; This file is part of GCC.
7169689Skan;
8169689Skan; GCC is free software; you can redistribute it and/or modify it under
9169689Skan; the terms of the GNU General Public License as published by the Free
10169689Skan; Software Foundation; either version 2, or (at your option) any later
11169689Skan; version.
12169689Skan;
13169689Skan; GCC is distributed in the hope that it will be useful, but WITHOUT
14169689Skan; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15169689Skan; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
16169689Skan; License for more details.
17169689Skan;
18169689Skan; You should have received a copy of the GNU General Public License
19169689Skan; along with GCC; see the file COPYING.  If not, write to the Free
20169689Skan; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
21169689Skan; 02110-1301, USA.
22169689Skan
23169689Skanmpower
24169689SkanTarget Report RejectNegative Mask(POWER)
25169689SkanUse POWER instruction set
26169689Skan
27169689Skanmno-power
28169689SkanTarget Report RejectNegative
29169689SkanDo not use POWER instruction set
30169689Skan
31169689Skanmpower2
32169689SkanTarget Report Mask(POWER2)
33169689SkanUse POWER2 instruction set
34169689Skan
35169689Skanmpowerpc
36169689SkanTarget Report RejectNegative Mask(POWERPC)
37169689SkanUse PowerPC instruction set
38169689Skan
39169689Skanmno-powerpc
40169689SkanTarget Report RejectNegative
41169689SkanDo not use PowerPC instruction set
42169689Skan
43169689Skanmpowerpc64
44169689SkanTarget Report Mask(POWERPC64)
45169689SkanUse PowerPC-64 instruction set
46169689Skan
47169689Skanmpowerpc-gpopt
48169689SkanTarget Report Mask(PPC_GPOPT)
49169689SkanUse PowerPC General Purpose group optional instructions
50169689Skan
51169689Skanmpowerpc-gfxopt
52169689SkanTarget Report Mask(PPC_GFXOPT)
53169689SkanUse PowerPC Graphics group optional instructions
54169689Skan
55169689Skanmmfcrf
56169689SkanTarget Report Mask(MFCRF)
57169689SkanUse PowerPC V2.01 single field mfcr instruction
58169689Skan
59169689Skanmpopcntb
60169689SkanTarget Report Mask(POPCNTB)
61169689SkanUse PowerPC V2.02 popcntb instruction
62169689Skan
63169689Skanmfprnd
64169689SkanTarget Report Mask(FPRND)
65169689SkanUse PowerPC V2.02 floating point rounding instructions
66169689Skan
67169689Skanmaltivec
68169689SkanTarget Report Mask(ALTIVEC)
69169689SkanUse AltiVec instructions
70169689Skan
71169689Skanmmulhw
72169689SkanTarget Report Mask(MULHW)
73169689SkanUse 4xx half-word multiply instructions
74169689Skan
75169689Skanmdlmzb
76169689SkanTarget Report Mask(DLMZB)
77169689SkanUse 4xx string-search dlmzb instruction
78169689Skan
79169689Skanmmultiple
80169689SkanTarget Report Mask(MULTIPLE)
81169689SkanGenerate load/store multiple instructions
82169689Skan
83169689Skanmstring
84169689SkanTarget Report Mask(STRING)
85169689SkanGenerate string instructions for block moves
86169689Skan
87169689Skanmnew-mnemonics
88169689SkanTarget Report RejectNegative Mask(NEW_MNEMONICS)
89169689SkanUse new mnemonics for PowerPC architecture
90169689Skan
91169689Skanmold-mnemonics
92169689SkanTarget Report RejectNegative InverseMask(NEW_MNEMONICS)
93169689SkanUse old mnemonics for PowerPC architecture
94169689Skan
95169689Skanmsoft-float
96169689SkanTarget Report RejectNegative Mask(SOFT_FLOAT)
97169689SkanDo not use hardware floating point
98169689Skan
99169689Skanmhard-float
100169689SkanTarget Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
101169689SkanUse hardware floating point
102169689Skan
103169689Skanmno-update
104169689SkanTarget Report RejectNegative Mask(NO_UPDATE)
105169689SkanDo not generate load/store with update instructions
106169689Skan
107169689Skanmupdate
108169689SkanTarget Report RejectNegative InverseMask(NO_UPDATE, UPDATE)
109169689SkanGenerate load/store with update instructions
110169689Skan
111169689Skanmno-fused-madd
112169689SkanTarget Report RejectNegative Mask(NO_FUSED_MADD)
113169689SkanDo not generate fused multiply/add instructions
114169689Skan
115169689Skanmfused-madd
116169689SkanTarget Report RejectNegative InverseMask(NO_FUSED_MADD, FUSED_MADD)
117169689SkanGenerate fused multiply/add instructions
118169689Skan
119169689Skanmsched-prolog
120169689SkanTarget Report Var(TARGET_SCHED_PROLOG) Init(1)
121169689SkanSchedule the start and end of the procedure
122169689Skan
123169689Skanmsched-epilog
124169689SkanTarget Undocumented Var(TARGET_SCHED_PROLOG) VarExists
125169689Skan
126169689Skanmaix-struct-return
127169689SkanTarget Report RejectNegative Var(aix_struct_return)
128169689SkanReturn all structures in memory (AIX default)
129169689Skan
130169689Skanmsvr4-struct-return
131169689SkanTarget Report RejectNegative Var(aix_struct_return,0) VarExists
132169689SkanReturn small structures in registers (SVR4 default)
133169689Skan
134169689Skanmxl-compat
135169689SkanTarget Report Var(TARGET_XL_COMPAT)
136169689SkanConform more closely to IBM XLC semantics
137169689Skan
138169689Skanmswdiv
139169689SkanTarget Report Var(swdiv)
140169689SkanGenerate software floating point divide for better throughput
141169689Skan
142169689Skanmno-fp-in-toc
143169689SkanTarget Report RejectNegative Var(TARGET_NO_FP_IN_TOC)
144169689SkanDo not place floating point constants in TOC
145169689Skan
146169689Skanmfp-in-toc
147169689SkanTarget Report RejectNegative Var(TARGET_NO_FP_IN_TOC,0)
148169689SkanPlace floating point constants in TOC
149169689Skan
150169689Skanmno-sum-in-toc
151169689SkanTarget RejectNegative Var(TARGET_NO_SUM_IN_TOC)
152169689SkanDo not place symbol+offset constants in TOC
153169689Skan
154169689Skanmsum-in-toc
155169689SkanTarget RejectNegative Var(TARGET_NO_SUM_IN_TOC,0) VarExists
156169689SkanPlace symbol+offset constants in TOC
157169689Skan
158169689Skan;  Output only one TOC entry per module.  Normally linking fails if
159169689Skan;   there are more than 16K unique variables/constants in an executable.  With
160169689Skan;   this option, linking fails only if there are more than 16K modules, or
161169689Skan;   if there are more than 16K unique variables/constant in a single module.
162169689Skan;
163169689Skan;   This is at the cost of having 2 extra loads and one extra store per
164169689Skan;   function, and one less allocable register.
165169689Skanmminimal-toc
166169689SkanTarget Report Mask(MINIMAL_TOC)
167169689SkanUse only one TOC entry per procedure
168169689Skan
169169689Skanmfull-toc
170169689SkanTarget Report
171169689SkanPut everything in the regular TOC
172169689Skan
173169689Skanmvrsave
174169689SkanTarget Report Var(TARGET_ALTIVEC_VRSAVE)
175169689SkanGenerate VRSAVE instructions when generating AltiVec code
176169689Skan
177169689Skanmvrsave=
178169689SkanTarget RejectNegative Joined
179169689Skan-mvrsave=yes/no	Deprecated option.  Use -mvrsave/-mno-vrsave instead
180169689Skan
181169689Skanmisel
182169689SkanTarget Var(rs6000_isel)
183169689SkanGenerate isel instructions
184169689Skan
185169689Skanmisel=
186169689SkanTarget RejectNegative Joined
187169689Skan-misel=yes/no	Deprecated option.  Use -misel/-mno-isel instead
188169689Skan
189169689Skanmspe
190169689SkanTarget Var(rs6000_spe)
191169689SkanGenerate SPE SIMD instructions on E500
192169689Skan
193169689Skanmspe=
194169689SkanTarget RejectNegative Joined
195169689Skan-mspe=yes/no	Deprecated option.  Use -mspe/-mno-spe instead
196169689Skan
197169689Skanmdebug=
198169689SkanTarget RejectNegative Joined
199169689Skan-mdebug=	Enable debug output
200169689Skan
201169689Skanmabi=
202169689SkanTarget RejectNegative Joined
203169689Skan-mabi=	Specify ABI to use
204169689Skan
205169689Skanmcpu=
206169689SkanTarget RejectNegative Joined
207169689Skan-mcpu=	Use features of and schedule code for given CPU
208169689Skan
209169689Skanmtune=
210169689SkanTarget RejectNegative Joined
211169689Skan-mtune=	Schedule code for given CPU
212169689Skan
213169689Skanmtraceback=
214169689SkanTarget RejectNegative Joined
215169689Skan-mtraceback=	Select full, part, or no traceback table
216169689Skan
217169689Skanmlongcall
218169689SkanTarget Report Var(rs6000_default_long_calls)
219169689SkanAvoid all range limits on call instructions
220169689Skan
221169689Skanmwarn-altivec-long
222169689SkanTarget Var(rs6000_warn_altivec_long) Init(1)
223169689SkanWarn about deprecated 'vector long ...' AltiVec type usage
224169689Skan
225169689Skanmfloat-gprs=
226169689SkanTarget RejectNegative Joined
227169689Skan-mfloat-gprs=	Select GPR floating point method
228169689Skan
229169689Skanmlong-double-
230169689SkanTarget RejectNegative Joined UInteger
231169689Skan-mlong-double-<n>	Specify size of long double (64 or 128 bits)
232169689Skan
233169689Skanmsched-costly-dep=
234169689SkanTarget RejectNegative Joined 
235169689SkanDetermine which dependences between insns are considered costly
236169689Skan
237169689Skanminsert-sched-nops=
238169689SkanTarget RejectNegative Joined
239169689SkanSpecify which post scheduling nop insertion scheme to apply
240169689Skan
241169689Skanmalign-
242169689SkanTarget RejectNegative Joined
243169689SkanSpecify alignment of structure fields default/natural
244169689Skan
245169689Skanmprioritize-restricted-insns=
246169689SkanTarget RejectNegative Joined UInteger Var(rs6000_sched_restricted_insns_priority)
247169689SkanSpecify scheduling priority for dispatch slot restricted insns
248