; Options for the MIPS port of the compiler ; ; Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc. ; ; 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 3, 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 COPYING3. If not see ; . mabi= Target RejectNegative Joined -mabi=ABI Generate code that conforms to the given ABI mabicalls Target Report Mask(ABICALLS) Generate code that can be used in SVR4-style dynamic objects mad Target Report Var(TARGET_MAD) Use PMC-style 'mad' instructions march= Target RejectNegative Joined Var(mips_arch_string) -march=ISA Generate code for the given ISA mbranch-cost= Target RejectNegative Joined UInteger Var(mips_branch_cost) -mbranch-cost=COST Set the cost of branches to roughly COST instructions mbranch-likely Target Report Mask(BRANCHLIKELY) Use Branch Likely instructions, overriding the architecture default mflip-mips16 Target Report Var(TARGET_FLIP_MIPS16) Switch on/off MIPS16 ASE on alternating functions for compiler testing mcheck-zero-division Target Report Mask(CHECK_ZERO_DIV) Trap on integer divide by zero mcode-readable= Target RejectNegative Joined -mcode-readable=SETTING Specify when instructions are allowed to access code mdivide-breaks Target Report RejectNegative Mask(DIVIDE_BREAKS) Use branch-and-break sequences to check for integer divide by zero mdivide-traps Target Report RejectNegative InverseMask(DIVIDE_BREAKS, DIVIDE_TRAPS) Use trap instructions to check for integer divide by zero mdmx Target Report RejectNegative Var(TARGET_MDMX) Allow the use of MDMX instructions mdouble-float Target Report RejectNegative InverseMask(SINGLE_FLOAT, DOUBLE_FLOAT) Allow hardware floating-point instructions to cover both 32-bit and 64-bit operations mdsp Target Report Mask(DSP) Use MIPS-DSP instructions mdspr2 Target Report Mask(DSPR2) Use MIPS-DSP REV 2 instructions mdebug Target Var(TARGET_DEBUG_MODE) Undocumented mdebugd Target Var(TARGET_DEBUG_D_MODE) Undocumented meb Target Report RejectNegative Mask(BIG_ENDIAN) Use big-endian byte order mel Target Report RejectNegative InverseMask(BIG_ENDIAN, LITTLE_ENDIAN) Use little-endian byte order membedded-data Target Report Var(TARGET_EMBEDDED_DATA) Use ROM instead of RAM mexplicit-relocs Target Report Mask(EXPLICIT_RELOCS) Use NewABI-style %reloc() assembly operators mextern-sdata Target Report Var(TARGET_EXTERN_SDATA) Init(1) Use -G for data that is not defined by the current object mfix-r4000 Target Report Mask(FIX_R4000) Work around certain R4000 errata mfix-r4400 Target Report Mask(FIX_R4400) Work around certain R4400 errata mfix-r10000 Target Report Mask(FIX_R10000) Work around certain R10000 errata mfix-sb1 Target Report Var(TARGET_FIX_SB1) Work around errata for early SB-1 revision 2 cores mfix-vr4120 Target Report Var(TARGET_FIX_VR4120) Work around certain VR4120 errata mfix-vr4130 Target Report Var(TARGET_FIX_VR4130) Work around VR4130 mflo/mfhi errata mfix4300 Target Report Var(TARGET_4300_MUL_FIX) Work around an early 4300 hardware bug mfp-exceptions Target Report Mask(FP_EXCEPTIONS) FP exceptions are enabled mfp32 Target Report RejectNegative InverseMask(FLOAT64) Use 32-bit floating-point registers mfp64 Target Report RejectNegative Mask(FLOAT64) Use 64-bit floating-point registers mflush-func= Target RejectNegative Joined Var(mips_cache_flush_func) Init(CACHE_FLUSH_FUNC) -mflush-func=FUNC Use FUNC to flush the cache before calling stack trampolines mfused-madd Target Report Mask(FUSED_MADD) Generate floating-point multiply-add instructions mgp32 Target Report RejectNegative InverseMask(64BIT) Use 32-bit general registers mgp64 Target Report RejectNegative Mask(64BIT) Use 64-bit general registers mgpopt Target Report Var(TARGET_GPOPT) Init(1) Use GP-relative addressing to access small data mplt Target Report Var(TARGET_PLT) When generating -mabicalls code, allow executables to use PLTs and copy relocations mhard-float Target Report RejectNegative InverseMask(SOFT_FLOAT_ABI, HARD_FLOAT_ABI) Allow the use of hardware floating-point ABI and instructions minterlink-mips16 Target Report Var(TARGET_INTERLINK_MIPS16) Init(0) Generate code that can be safely linked with MIPS16 code. mips Target RejectNegative Joined -mipsN Generate code for ISA level N mips16 Target Report RejectNegative Mask(MIPS16) Generate MIPS16 code mips3d Target Report RejectNegative Mask(MIPS3D) Use MIPS-3D instructions mllsc Target Report Mask(LLSC) Use ll, sc and sync instructions mlocal-sdata Target Report Var(TARGET_LOCAL_SDATA) Init(1) Use -G for object-local data mlong-calls Target Report Var(TARGET_LONG_CALLS) Use indirect calls mlong32 Target Report RejectNegative InverseMask(LONG64, LONG32) Use a 32-bit long type mlong64 Target Report RejectNegative Mask(LONG64) Use a 64-bit long type mmcount-ra-address Target Report Var(TARGET_MCOUNT_RA_ADDRESS) Pass the address of the ra save location to _mcount in $12 mmemcpy Target Report Mask(MEMCPY) Don't optimize block moves mmips-tfile Target Use the mips-tfile postpass mmt Target Report Var(TARGET_MT) Allow the use of MT instructions mno-float Target Report RejectNegative Var(TARGET_NO_FLOAT) Condition(TARGET_SUPPORTS_NO_FLOAT) Prevent the use of all floating-point operations mno-flush-func Target RejectNegative Do not use a cache-flushing function before calling stack trampolines mno-mdmx Target Report RejectNegative InverseVar(MDMX) Do not use MDMX instructions mno-mips16 Target Report RejectNegative InverseMask(MIPS16) Generate normal-mode code mno-mips3d Target Report RejectNegative InverseMask(MIPS3D) Do not use MIPS-3D instructions mpaired-single Target Report Mask(PAIRED_SINGLE_FLOAT) Use paired-single floating-point instructions mr10k-cache-barrier= Target Joined RejectNegative -mr10k-cache-barrier=SETTING Specify when r10k cache barriers should be inserted mrelax-pic-calls Target Report Mask(RELAX_PIC_CALLS) Try to allow the linker to turn PIC calls into direct calls mshared Target Report Var(TARGET_SHARED) Init(1) When generating -mabicalls code, make the code suitable for use in shared libraries msingle-float Target Report RejectNegative Mask(SINGLE_FLOAT) Restrict the use of hardware floating-point instructions to 32-bit operations msmartmips Target Report Mask(SMARTMIPS) Use SmartMIPS instructions msoft-float Target Report RejectNegative Mask(SOFT_FLOAT_ABI) Prevent the use of all hardware floating-point instructions msplit-addresses Target Report Mask(SPLIT_ADDRESSES) Optimize lui/addiu address loads msym32 Target Report Var(TARGET_SYM32) Assume all symbols have 32-bit values msynci Target Report Mask(SYNCI) Use synci instruction to invalidate i-cache mtune= Target RejectNegative Joined Var(mips_tune_string) -mtune=PROCESSOR Optimize the output for PROCESSOR muninit-const-in-rodata Target Report Var(TARGET_UNINIT_CONST_IN_RODATA) Put uninitialized constants in ROM (needs -membedded-data) mvr4130-align Target Report Mask(VR4130_ALIGN) Perform VR4130-specific alignment optimizations mxgot Target Report Var(TARGET_XGOT) Lift restrictions on GOT size