; Options for the rs6000 port of the compiler ; ; Copyright (C) 2005 Free Software Foundation, Inc. ; Contributed by Aldy Hernandez . ; ; This file is part of GCC. ; ; GCC is free software; you can redistribute it and/or modify it under ; the terms of the GNU General Public License as published by the Free ; Software Foundation; either version 2, or (at your option) any later ; version. ; ; GCC is distributed in the hope that it will be useful, but WITHOUT ; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ; License for more details. ; ; You should have received a copy of the GNU General Public License ; along with GCC; see the file COPYING. If not, write to the Free ; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ; 02110-1301, USA. mpower Target Report RejectNegative Mask(POWER) Use POWER instruction set mno-power Target Report RejectNegative Do not use POWER instruction set mpower2 Target Report Mask(POWER2) Use POWER2 instruction set mpowerpc Target Report RejectNegative Mask(POWERPC) Use PowerPC instruction set mno-powerpc Target Report RejectNegative Do not use PowerPC instruction set mpowerpc64 Target Report Mask(POWERPC64) Use PowerPC-64 instruction set mpowerpc-gpopt Target Report Mask(PPC_GPOPT) Use PowerPC General Purpose group optional instructions mpowerpc-gfxopt Target Report Mask(PPC_GFXOPT) Use PowerPC Graphics group optional instructions mmfcrf Target Report Mask(MFCRF) Use PowerPC V2.01 single field mfcr instruction mpopcntb Target Report Mask(POPCNTB) Use PowerPC V2.02 popcntb instruction mfprnd Target Report Mask(FPRND) Use PowerPC V2.02 floating point rounding instructions maltivec Target Report Mask(ALTIVEC) Use AltiVec instructions ; APPLE LOCAL begin AltiVec mpim-altivec Target Report Var(rs6000_altivec_pim) Enable use of Motorola AltiVec PIM operations and predicates mmask-pim-altivec Target Undocumented Mask(PIM_ALTIVEC) ; APPLE LOCAL end AltiVec mmulhw Target Report Mask(MULHW) Use 4xx half-word multiply instructions mdlmzb Target Report Mask(DLMZB) Use 4xx string-search dlmzb instruction mmultiple Target Report Mask(MULTIPLE) Generate load/store multiple instructions mstring Target Report Mask(STRING) Generate string instructions for block moves mnew-mnemonics Target Report RejectNegative Mask(NEW_MNEMONICS) Use new mnemonics for PowerPC architecture mold-mnemonics Target Report RejectNegative InverseMask(NEW_MNEMONICS) Use old mnemonics for PowerPC architecture msoft-float Target Report RejectNegative Mask(SOFT_FLOAT) Do not use hardware floating point mhard-float Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT) Use hardware floating point mno-update Target Report RejectNegative Mask(NO_UPDATE) Do not generate load/store with update instructions mupdate Target Report RejectNegative InverseMask(NO_UPDATE, UPDATE) Generate load/store with update instructions mno-fused-madd Target Report RejectNegative Mask(NO_FUSED_MADD) Do not generate fused multiply/add instructions mfused-madd Target Report RejectNegative InverseMask(NO_FUSED_MADD, FUSED_MADD) Generate fused multiply/add instructions msched-prolog Target Report Var(TARGET_SCHED_PROLOG) Init(1) Schedule the start and end of the procedure msched-epilog Target Undocumented Var(TARGET_SCHED_PROLOG) VarExists maix-struct-return Target Report RejectNegative Var(aix_struct_return) Return all structures in memory (AIX default) msvr4-struct-return Target Report RejectNegative Var(aix_struct_return,0) VarExists Return small structures in registers (SVR4 default) mxl-compat Target Report Var(TARGET_XL_COMPAT) Conform more closely to IBM XLC semantics mswdiv Target Report Var(swdiv) Generate software floating point divide for better throughput mno-fp-in-toc Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC) Do not place floating point constants in TOC mfp-in-toc Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC,0) Place floating point constants in TOC mno-sum-in-toc Target RejectNegative Var(TARGET_NO_SUM_IN_TOC) Do not place symbol+offset constants in TOC msum-in-toc Target RejectNegative Var(TARGET_NO_SUM_IN_TOC,0) VarExists Place symbol+offset constants in TOC ; Output only one TOC entry per module. Normally linking fails if ; there are more than 16K unique variables/constants in an executable. With ; this option, linking fails only if there are more than 16K modules, or ; if there are more than 16K unique variables/constant in a single module. ; ; This is at the cost of having 2 extra loads and one extra store per ; function, and one less allocable register. mminimal-toc Target Report Mask(MINIMAL_TOC) Use only one TOC entry per procedure mfull-toc Target Report Put everything in the regular TOC mvrsave Target Report Var(TARGET_ALTIVEC_VRSAVE) Generate VRSAVE instructions when generating AltiVec code mvrsave= Target RejectNegative Joined -mvrsave=yes/no Deprecated option. Use -mvrsave/-mno-vrsave instead misel Target Var(rs6000_isel) Generate isel instructions misel= Target RejectNegative Joined -misel=yes/no Deprecated option. Use -misel/-mno-isel instead mspe Target Var(rs6000_spe) Generate SPE SIMD instructions on E500 mspe= Target RejectNegative Joined -mspe=yes/no Deprecated option. Use -mspe/-mno-spe instead mdebug= Target RejectNegative Joined -mdebug= Enable debug output mabi= Target RejectNegative Joined -mabi= Specify ABI to use mcpu= Target RejectNegative Joined -mcpu= Use features of and schedule code for given CPU mtune= Target RejectNegative Joined -mtune= Schedule code for given CPU mtraceback= Target RejectNegative Joined -mtraceback= Select full, part, or no traceback table mlongcall Target Report Var(rs6000_default_long_calls) Avoid all range limits on call instructions ; APPLE LOCAL begin long-branch mlong-branch Target Report Var(rs6000_default_long_calls) Deprecated option. Use -mlongcall instead ; APPLE LOCAL end long-branch mwarn-altivec-long Target Var(rs6000_warn_altivec_long) Init(1) Warn about deprecated 'vector long ...' AltiVec type usage mfloat-gprs= Target RejectNegative Joined -mfloat-gprs= Select GPR floating point method mlong-double- Target RejectNegative Joined UInteger -mlong-double- Specify size of long double (64 or 128 bits) msched-costly-dep= Target RejectNegative Joined Determine which dependences between insns are considered costly minsert-sched-nops= Target RejectNegative Joined Specify which post scheduling nop insertion scheme to apply malign- Target RejectNegative Joined Specify alignment of structure fields default/natural mprioritize-restricted-insns= Target RejectNegative Joined UInteger Var(rs6000_sched_restricted_insns_priority) Specify scheduling priority for dispatch slot restricted insns