| ; Options for the SH port of the compiler. |
| |
| ; Copyright (C) 2005-2015 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 |
| ; <http://www.gnu.org/licenses/>. |
| |
| ;; Used for various architecture options. |
| Mask(SH_E) |
| |
| ;; Set if the default precision of the FPU is single. |
| Mask(FPU_SINGLE) |
| |
| ;; Set if the a double-precision FPU is present but is restricted to |
| ;; single precision usage only. |
| Mask(FPU_SINGLE_ONLY) |
| |
| ;; Set if we should generate code using type 2A insns. |
| Mask(HARD_SH2A) |
| |
| ;; Set if we should generate code using type 2A DF insns. |
| Mask(HARD_SH2A_DOUBLE) |
| |
| ;; Set if compiling for SH4 hardware (to be used for insn costs etc.) |
| Mask(HARD_SH4) |
| |
| ;; Set if we should generate code for a SH5 CPU (either ISA). |
| Mask(SH5) |
| |
| ;; Set if we should save all target registers. |
| Mask(SAVE_ALL_TARGET_REGS) |
| |
| m1 |
| Target RejectNegative Mask(SH1) Condition(SUPPORT_SH1) |
| Generate SH1 code |
| |
| m2 |
| Target RejectNegative Mask(SH2) Condition(SUPPORT_SH2) |
| Generate SH2 code |
| |
| m2a |
| Target RejectNegative Condition(SUPPORT_SH2A) |
| Generate default double-precision SH2a-FPU code |
| |
| m2a-nofpu |
| Target RejectNegative Condition(SUPPORT_SH2A_NOFPU) |
| Generate SH2a FPU-less code |
| |
| m2a-single |
| Target RejectNegative Condition(SUPPORT_SH2A_SINGLE) |
| Generate default single-precision SH2a-FPU code |
| |
| m2a-single-only |
| Target RejectNegative Condition(SUPPORT_SH2A_SINGLE_ONLY) |
| Generate only single-precision SH2a-FPU code |
| |
| m2e |
| Target RejectNegative Condition(SUPPORT_SH2E) |
| Generate SH2e code |
| |
| m3 |
| Target RejectNegative Mask(SH3) Condition(SUPPORT_SH3) |
| Generate SH3 code |
| |
| m3e |
| Target RejectNegative Condition(SUPPORT_SH3E) |
| Generate SH3e code |
| |
| m4 |
| Target RejectNegative Mask(SH4) Condition(SUPPORT_SH4) |
| Generate SH4 code |
| |
| m4-100 |
| Target RejectNegative Condition(SUPPORT_SH4) |
| Generate SH4-100 code |
| |
| m4-200 |
| Target RejectNegative Condition(SUPPORT_SH4) |
| Generate SH4-200 code |
| |
| ;; TARGET_SH4_300 indicates if we have the ST40-300 instruction set and |
| ;; pipeline - irrespective of ABI. |
| m4-300 |
| Target RejectNegative Condition(SUPPORT_SH4) Var(TARGET_SH4_300) |
| Generate SH4-300 code |
| |
| m4-nofpu |
| Target RejectNegative Condition(SUPPORT_SH4_NOFPU) |
| Generate SH4 FPU-less code |
| |
| m4-100-nofpu |
| Target RejectNegative Condition(SUPPORT_SH4_NOFPU) |
| Generate SH4-100 FPU-less code |
| |
| m4-200-nofpu |
| Target RejectNegative Condition(SUPPORT_SH4_NOFPU) |
| Generate SH4-200 FPU-less code |
| |
| m4-300-nofpu |
| Target RejectNegative Condition(SUPPORT_SH4_NOFPU) Var(TARGET_SH4_300) |
| Generate SH4-300 FPU-less code |
| |
| m4-340 |
| Target RejectNegative Condition(SUPPORT_SH4_NOFPU) Var(TARGET_SH4_300) |
| Generate code for SH4 340 series (MMU/FPU-less) |
| ;; passes -isa=sh4-nommu-nofpu to the assembler. |
| |
| m4-400 |
| Target RejectNegative Condition(SUPPORT_SH4_NOFPU) |
| Generate code for SH4 400 series (MMU/FPU-less) |
| ;; passes -isa=sh4-nommu-nofpu to the assembler. |
| |
| m4-500 |
| Target RejectNegative Condition(SUPPORT_SH4_NOFPU) |
| Generate code for SH4 500 series (FPU-less). |
| ;; passes -isa=sh4-nofpu to the assembler. |
| |
| m4-single |
| Target RejectNegative Condition(SUPPORT_SH4_SINGLE) |
| Generate default single-precision SH4 code |
| |
| m4-100-single |
| Target RejectNegative Condition(SUPPORT_SH4_SINGLE) |
| Generate default single-precision SH4-100 code |
| |
| m4-200-single |
| Target RejectNegative Condition(SUPPORT_SH4_SINGLE) |
| Generate default single-precision SH4-200 code |
| |
| m4-300-single |
| Target RejectNegative Condition(SUPPORT_SH4_SINGLE) Var(TARGET_SH4_300) |
| Generate default single-precision SH4-300 code |
| |
| m4-single-only |
| Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY) |
| Generate only single-precision SH4 code |
| |
| m4-100-single-only |
| Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY) |
| Generate only single-precision SH4-100 code |
| |
| m4-200-single-only |
| Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY) |
| Generate only single-precision SH4-200 code |
| |
| m4-300-single-only |
| Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY) Var(TARGET_SH4_300) |
| Generate only single-precision SH4-300 code |
| |
| m4a |
| Target RejectNegative Mask(SH4A) Condition(SUPPORT_SH4A) |
| Generate SH4a code |
| |
| m4a-nofpu |
| Target RejectNegative Condition(SUPPORT_SH4A_NOFPU) |
| Generate SH4a FPU-less code |
| |
| m4a-single |
| Target RejectNegative Condition(SUPPORT_SH4A_SINGLE) |
| Generate default single-precision SH4a code |
| |
| m4a-single-only |
| Target RejectNegative Condition(SUPPORT_SH4A_SINGLE_ONLY) |
| Generate only single-precision SH4a code |
| |
| m4al |
| Target RejectNegative Condition(SUPPORT_SH4AL) |
| Generate SH4al-dsp code |
| |
| m5-32media |
| Target RejectNegative Condition(SUPPORT_SH5_32MEDIA) |
| Generate 32-bit SHmedia code |
| |
| m5-32media-nofpu |
| Target RejectNegative Condition(SUPPORT_SH5_32MEDIA_NOFPU) |
| Generate 32-bit FPU-less SHmedia code |
| |
| m5-64media |
| Target RejectNegative Condition(SUPPORT_SH5_64MEDIA) |
| Generate 64-bit SHmedia code |
| |
| m5-64media-nofpu |
| Target RejectNegative Condition(SUPPORT_SH5_64MEDIA_NOFPU) |
| Generate 64-bit FPU-less SHmedia code |
| |
| m5-compact |
| Target RejectNegative Condition(SUPPORT_SH5_32MEDIA) |
| Generate SHcompact code |
| |
| m5-compact-nofpu |
| Target RejectNegative Condition(SUPPORT_SH5_32MEDIA_NOFPU) |
| Generate FPU-less SHcompact code |
| |
| maccumulate-outgoing-args |
| Target Report Var(TARGET_ACCUMULATE_OUTGOING_ARGS) Init(1) |
| Reserve space for outgoing arguments in the function prologue |
| |
| madjust-unroll |
| Target Ignore |
| Does nothing. Preserved for backward compatibility. |
| |
| mb |
| Target Report RejectNegative InverseMask(LITTLE_ENDIAN) |
| Generate code in big endian mode |
| |
| mbigtable |
| Target Report RejectNegative Mask(BIGTABLE) |
| Generate 32-bit offsets in switch tables |
| |
| mbitops |
| Target Report RejectNegative Mask(BITOPS) |
| Generate bit instructions |
| |
| mbranch-cost= |
| Target RejectNegative Joined UInteger Var(sh_branch_cost) Init(-1) |
| Cost to assume for a branch insn |
| |
| mzdcbranch |
| Target Report Var(TARGET_ZDCBRANCH) |
| Assume that zero displacement conditional branches are fast |
| |
| mcbranchdi |
| Target Undocumented Var(TARGET_CBRANCHDI4) Warn(%qs is deprecated and has no effect) |
| Enable cbranchdi4 pattern |
| |
| mcmpeqdi |
| Target Undocumented Var(TARGET_CMPEQDI_T) Warn(%qs is deprecated and has no effect) |
| Emit cmpeqdi_t pattern even when -mcbranchdi is in effect. |
| |
| mcbranch-force-delay-slot |
| Target Report RejectNegative Var(TARGET_CBRANCH_FORCE_DELAY_SLOT) Init(0) |
| Force the usage of delay slots for conditional branches. |
| |
| mcut2-workaround |
| Target RejectNegative Var(TARGET_SH5_CUT2_WORKAROUND) |
| Enable SH5 cut2 workaround |
| |
| mdalign |
| Target Report RejectNegative Mask(ALIGN_DOUBLE) |
| Align doubles at 64-bit boundaries |
| |
| mdiv= |
| Target RejectNegative Joined Var(sh_div_str) Init("") |
| Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp, call-div1, call-fp, call-table |
| |
| mdivsi3_libfunc= |
| Target RejectNegative Joined Var(sh_divsi3_libfunc) Init("") |
| Specify name for 32 bit signed division function |
| |
| mfmovd |
| Target RejectNegative Mask(FMOVD) |
| Enable the use of 64-bit floating point registers in fmov instructions. See -mdalign if 64-bit alignment is required. |
| |
| mfixed-range= |
| Target RejectNegative Joined Var(sh_fixed_range_str) |
| Specify range of registers to make fixed |
| |
| mgettrcost= |
| Target RejectNegative Joined UInteger Var(sh_gettrcost) Init(-1) |
| Cost to assume for gettr insn |
| |
| mhitachi |
| Target Report RejectNegative Mask(HITACHI) |
| Follow Renesas (formerly Hitachi) / SuperH calling conventions |
| |
| mieee |
| Target Var(TARGET_IEEE) |
| Increase the IEEE compliance for floating-point comparisons |
| |
| mindexed-addressing |
| Target Report Mask(ALLOW_INDEXED_ADDRESS) Condition(SUPPORT_ANY_SH5_32MEDIA) |
| Enable the use of the indexed addressing mode for SHmedia32/SHcompact |
| |
| minline-ic_invalidate |
| Target Report Var(TARGET_INLINE_IC_INVALIDATE) |
| inline code to invalidate instruction cache entries after setting up nested function trampolines |
| |
| minvalid-symbols |
| Target Report Mask(INVALID_SYMBOLS) Condition(SUPPORT_ANY_SH5) |
| Assume symbols might be invalid |
| |
| misize |
| Target Report RejectNegative Mask(DUMPISIZE) |
| Annotate assembler instructions with estimated addresses |
| |
| ml |
| Target Report RejectNegative Mask(LITTLE_ENDIAN) |
| Generate code in little endian mode |
| |
| mnomacsave |
| Target Report RejectNegative Mask(NOMACSAVE) |
| Mark MAC register as call-clobbered |
| |
| ;; ??? This option is not useful, but is retained in case there are people |
| ;; who are still relying on it. It may be deleted in the future. |
| mpadstruct |
| Target Report RejectNegative Mask(PADSTRUCT) |
| Make structs a multiple of 4 bytes (warning: ABI altered) |
| |
| mprefergot |
| Target Report RejectNegative Mask(PREFERGOT) |
| Emit function-calls using global offset table when generating PIC |
| |
| mpt-fixed |
| Target Report Mask(PT_FIXED) Condition(SUPPORT_ANY_SH5) |
| Assume pt* instructions won't trap |
| |
| mrelax |
| Target Report RejectNegative Mask(RELAX) |
| Shorten address references during linking |
| |
| mrenesas |
| Target Mask(HITACHI) |
| Follow Renesas (formerly Hitachi) / SuperH calling conventions |
| |
| msoft-atomic |
| Target Undocumented Alias(matomic-model=, soft-gusa, none) |
| Deprecated. Use -matomic= instead to select the atomic model |
| |
| matomic-model= |
| Target Report RejectNegative Joined Var(sh_atomic_model_str) |
| Specify the model for atomic operations |
| |
| mtas |
| Target Report RejectNegative Var(TARGET_ENABLE_TAS) |
| Use tas.b instruction for __atomic_test_and_set |
| |
| mspace |
| Target RejectNegative Alias(Os) |
| Deprecated. Use -Os instead |
| |
| multcost= |
| Target RejectNegative Joined UInteger Var(sh_multcost) Init(-1) |
| Cost to assume for a multiply insn |
| |
| musermode |
| Target Var(TARGET_USERMODE) |
| Don't generate privileged-mode only code; implies -mno-inline-ic_invalidate if the inline code would not work in user mode. |
| |
| ;; We might want to enable this by default for TARGET_HARD_SH4, because |
| ;; zero-offset branches have zero latency. Needs some benchmarking. |
| mpretend-cmove |
| Target Var(TARGET_PRETEND_CMOVE) |
| Pretend a branch-around-a-move is a conditional move. |
| |
| mfsca |
| Target Var(TARGET_FSCA) |
| Enable the use of the fsca instruction |
| |
| mfsrra |
| Target Var(TARGET_FSRRA) |
| Enable the use of the fsrra instruction |
| |
| mlra |
| Target Report Var(sh_lra_flag) Init(0) Save |
| Use LRA instead of reload (transitional) |