1 ; Options for the rs6000 port of the compiler
3 ; Copyright (C) 2005 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 2, or (at your option) any later
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 COPYING. If not, write to the Free
20 ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
24 Target Report RejectNegative Mask(POWER)
25 Use POWER instruction set
28 Target Report RejectNegative
29 Do not use POWER instruction set
32 Target Report Mask(POWER2)
33 Use POWER2 instruction set
36 Target Report RejectNegative Mask(POWERPC)
37 Use PowerPC instruction set
40 Target Report RejectNegative
41 Do not use PowerPC instruction set
44 Target Report Mask(POWERPC64)
45 Use PowerPC-64 instruction set
48 Target Report Mask(ALTIVEC)
49 Use AltiVec instructions
52 Target Report RejectNegative Mask(NEW_MNEMONICS)
53 Use new mnemonics for PowerPC architecture
56 Target Report RejectNegative InverseMask(NEW_MNEMONICS)
57 Use old mnemonics for PowerPC architecture
60 Target Report RejectNegative Mask(NO_FP_IN_TOC)
61 Do not place floating point constants in TOC
64 Target Report RejectNegative InverseMask(NO_FP_IN_TOC)
65 Place floating point constants in TOC
68 Target RejectNegative Mask(NO_SUM_IN_TOC)
69 Do not place symbol+offset constants in TOC
72 Target RejectNegative InverseMask(NO_SUM_IN_TOC)
73 Place symbol+offset constants in TOC
75 ;; ?? Where should we put documentation like this ??
77 ; Output only one TOC entry per module. Normally linking fails if
78 ; there are more than 16K unique variables/constants in an executable. With
79 ; this option, linking fails only if there are more than 16K modules, or
80 ; if there are more than 16K unique variables/constant in a single module.
82 ; This is at the cost of having 2 extra loads and one extra store per
83 ; function, and one less allocable register.
85 Target Report Mask(MINIMAL_TOC)
86 Use only one TOC entry per procedure
89 Target Report RejectNegative Mask(SOFT_FLOAT)
90 Do not use hardware floating point
93 Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
94 Use hardware floating point
97 Target Report Mask(MULTIPLE)
98 Generate load/store multiple instructions
101 Target Report Mask(STRING)
102 Generate string instructions for block moves
105 Target Report RejectNegative Mask(NO_UPDATE)
106 Do not generate load/store with update instructions
109 Target Report RejectNegative InverseMask(NO_UPDATE, UPDATE)
110 Generate load/store with update instructions
113 Target Report RejectNegative Mask(NO_FUSED_MADD)
114 Do not generate fused multiply/add instructions
117 Target Report RejectNegative InverseMask(NO_FUSED_MADD, FUSED_MADD)
118 Generate fused multiply/add instructions
121 Target Report Mask(SCHED_PROLOG)
122 Schedule the start and end of the procedure
125 Target Undocumented Mask(SCHED_PROLOG) MaskExists
128 Target Report Mask(AIX_STRUCT_RET)
129 Return all structures in memory (AIX default)
132 Target Report InverseMask(AIX_STRUCT_RET)
133 Return small structures in registers (SVR4 default)
136 Target Report Mask(MFCRF)
137 Generate single field mfcr instruction
140 Target Report Mask(PPC_GPOPT)
141 Use PowerPC General Purpose group optional instructions
144 Target Report Mask(PPC_GFXOPT)
145 Use PowerPC Graphics group optional instructions
149 Put everything in the regular TOC
152 Target Report Var(TARGET_ALTIVEC_VRSAVE)
153 Generate VRSAVE instructions when generating AltiVec code
156 Target RejectNegative Joined
157 -mvrsave=yes/no Deprecated option. Use -mvrsave/-mno-vrsave instead.
160 Target Var(rs6000_isel)
161 Generate isel instructions
164 Target RejectNegative Joined
165 -misel=yes/no Deprecated option. Use -misel/-mno-isel instead
168 Target Var(rs6000_spe)
169 Generate SPE SIMD instructions on E500
172 Target RejectNegative Joined
173 -mspe=yes/no Deprecated option. Use -mspe/-mno-spe instead
176 Target RejectNegative Joined
177 -mdebug= Enable debug output
180 Target RejectNegative Joined
181 -mabi= Specify ABI to use
184 Target RejectNegative Joined
185 -mcpu= Use features of and schedule code for given CPU
188 Target RejectNegative Joined
189 -mtune= Schedule code for given CPU
192 Target RejectNegative Joined
193 -mtraceback= Select full, part, or no traceback table
196 Target Report Var(rs6000_default_long_calls)
197 Avoid all range limits on call instructions
200 Target Var(rs6000_warn_altivec_long) Init(1)
201 Warn about deprecated 'vector long ...' AltiVec type usage
204 Target RejectNegative Joined
205 -mfloat-gprs= Select GPR floating point method.
208 Target RejectNegative Joined UInteger
209 -mlong-double-<n> Specify size of long double (64 or 128 bits)
212 Target RejectNegative Joined
213 Determine which dependences between insns are considered costly
216 Target RejectNegative Joined
217 Specify which post scheduling nop insertion scheme to apply
220 Target RejectNegative Joined
221 Specify alignment of structure fields default/natural
223 mprioritize-restricted-insns=
224 Target RejectNegative Joined Uinteger Var(rs6000_sched_restricted_insns_priority)
225 Specify scheduling priority for dispatch slot restricted insns