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