blob: 76c66eda4d4635c3de20a29f4cdb02f87b02346a [file] [log] [blame]
; Options for the rs6000 port of the compiler
;
; Copyright (C) 2005 Free Software Foundation, Inc.
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
;
; 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-<n> 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