view gcc/config/nds32/nds32.opt @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
line wrap: on
line source

; Options of Andes NDS32 cpu for GNU compiler
; Copyright (C) 2012-2020 Free Software Foundation, Inc.
; Contributed by Andes Technology Corporation.
;
; 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/>.

HeaderInclude
config/nds32/nds32-opts.h

; ---------------------------------------------------------------
; The following options are designed for aliasing and compatibility options.

EB
Target RejectNegative Alias(mbig-endian)
Generate code in big-endian mode.

EL
Target RejectNegative Alias(mlittle-endian)
Generate code in little-endian mode.

mfp-as-gp
Target RejectNegative Alias(mforce-fp-as-gp)
Force performing fp-as-gp optimization.

mno-fp-as-gp
Target RejectNegative Alias(mforbid-fp-as-gp)
Forbid performing fp-as-gp optimization.

; ---------------------------------------------------------------

mabi=
Target RejectNegative Joined Enum(abi_type) Var(nds32_abi) Init(TARGET_DEFAULT_ABI)
Specify which ABI type to generate code for: 2, 2fp+.

Enum
Name(abi_type) Type(enum abi_type)
Known ABIs (for use with the -mabi= option):

EnumValue
Enum(abi_type) String(2) Value(NDS32_ABI_V2)

EnumValue
Enum(abi_type) String(2fp+) Value(NDS32_ABI_V2_FP_PLUS)

mfloat-abi=soft
Target RejectNegative Alias(mabi=, 2)
Specify use soft floating point ABI which mean alias to -mabi=2.

mfloat-abi=hard
Target RejectNegative Alias(mabi=, 2fp+)
Specify use soft floating point ABI which mean alias to -mabi=2fp+.

; ---------------------------------------------------------------

mreduced-regs
Target Report RejectNegative Negative(mfull-regs) Mask(REDUCED_REGS)
Use reduced-set registers for register allocation.

mfull-regs
Target Report RejectNegative Negative(mreduced-regs) InverseMask(REDUCED_REGS)
Use full-set registers for register allocation.

; ---------------------------------------------------------------

malways-align
Target Mask(ALWAYS_ALIGN)
Always align function entry, jump target and return address.

malign-functions
Target Mask(ALIGN_FUNCTION)
Align function entry to 4 byte.

mbig-endian
Target Undocumented RejectNegative Negative(mlittle-endian) Mask(BIG_ENDIAN)
Generate code in big-endian mode.

mlittle-endian
Target Undocumented RejectNegative Negative(mbig-endian) InverseMask(BIG_ENDIAN)
Generate code in little-endian mode.

mforce-fp-as-gp
Target Undocumented Mask(FORCE_FP_AS_GP)
Prevent $fp being allocated during register allocation so that compiler is able to force performing fp-as-gp optimization.

mforbid-fp-as-gp
Target Undocumented Mask(FORBID_FP_AS_GP)
Forbid using $fp to access static and global variables.  This option strictly forbids fp-as-gp optimization regardless of '-mforce-fp-as-gp'.

mict-model=
Target Undocumented RejectNegative Joined Enum(nds32_ict_model_type) Var(nds32_ict_model) Init(ICT_MODEL_SMALL)
Specify the address generation strategy for ICT call's code model.

Enum
Name(nds32_ict_model_type) Type(enum nds32_ict_model_type)
Known cmodel types (for use with the -mict-model= option):

EnumValue
Enum(nds32_ict_model_type) String(small) Value(ICT_MODEL_SMALL)

EnumValue
Enum(nds32_ict_model_type) String(large) Value(ICT_MODEL_LARGE)

mcmov
Target Report Mask(CMOV)
Generate conditional move instructions.

mhw-abs
Target Report Mask(HW_ABS)
Generate hardware abs instructions.

mext-perf
Target Report Mask(EXT_PERF)
Generate performance extension instructions.

mext-perf2
Target Report Mask(EXT_PERF2)
Generate performance extension version 2 instructions.

mext-string
Target Report Mask(EXT_STRING)
Generate string extension instructions.

mext-dsp
Target Report Mask(EXT_DSP)
Generate DSP extension instructions.

mv3push
Target Report Mask(V3PUSH)
Generate v3 push25/pop25 instructions.

m16-bit
Target Report Mask(16_BIT)
Generate 16-bit instructions.

mrelax-hint
Target Report Mask(RELAX_HINT)
Insert relax hint for linker to do relaxation.

mvh
Target Report Mask(VH) Condition(!TARGET_LINUX_ABI)
Enable Virtual Hosting support.

misr-vector-size=
Target RejectNegative Joined UInteger Var(nds32_isr_vector_size) Init(NDS32_DEFAULT_ISR_VECTOR_SIZE)
Specify the size of each interrupt vector, which must be 4 or 16.

misr-secure=
Target RejectNegative Joined UInteger Var(nds32_isr_secure_level) Init(0)
Specify the security level of c-isr for the whole file.

mcache-block-size=
Target RejectNegative Joined UInteger Var(nds32_cache_block_size) Init(NDS32_DEFAULT_CACHE_BLOCK_SIZE)
Specify the size of each cache block, which must be a power of 2 between 4 and 512.

march=
Target RejectNegative Joined Enum(nds32_arch_type) Var(nds32_arch_option) Init(ARCH_V3)
Specify the name of the target architecture.

Enum
Name(nds32_arch_type) Type(enum nds32_arch_type)
Known arch types (for use with the -march= option):

EnumValue
Enum(nds32_arch_type) String(v2) Value(ARCH_V2)

EnumValue
Enum(nds32_arch_type) String(v3) Value(ARCH_V3)

EnumValue
Enum(nds32_arch_type) String(v3j) Value(ARCH_V3J)

EnumValue
Enum(nds32_arch_type) String(v3m) Value(ARCH_V3M)

EnumValue
Enum(nds32_arch_type) String(v3f) Value(ARCH_V3F)

EnumValue
Enum(nds32_arch_type) String(v3s) Value(ARCH_V3S)

mcpu=
Target RejectNegative Joined Enum(nds32_cpu_type) Var(nds32_cpu_option) Init(CPU_N9)
Specify the cpu for pipeline model.

Enum
Name(nds32_cpu_type) Type(enum nds32_cpu_type)
Known cpu types (for use with the -mcpu= option):

EnumValue
Enum(nds32_cpu_type) String(n6) Value(CPU_N6)

EnumValue
Enum(nds32_cpu_type) String(n650) Value(CPU_N6)

EnumValue
Enum(nds32_cpu_type) String(n7) Value(CPU_N7)

EnumValue
Enum(nds32_cpu_type) String(n705) Value(CPU_N7)

EnumValue
Enum(nds32_cpu_type) String(n8) Value(CPU_N8)

EnumValue
Enum(nds32_cpu_type) String(n801) Value(CPU_N8)

EnumValue
Enum(nds32_cpu_type) String(sn8) Value(CPU_N8)

EnumValue
Enum(nds32_cpu_type) String(sn801) Value(CPU_N8)

EnumValue
Enum(nds32_cpu_type) String(s8) Value(CPU_N8)

EnumValue
Enum(nds32_cpu_type) String(s801) Value(CPU_N8)

EnumValue
Enum(nds32_cpu_type) String(e8) Value(CPU_E8)

EnumValue
Enum(nds32_cpu_type) String(e801) Value(CPU_E8)

EnumValue
Enum(nds32_cpu_type) String(n820) Value(CPU_E8)

EnumValue
Enum(nds32_cpu_type) String(s830) Value(CPU_E8)

EnumValue
Enum(nds32_cpu_type) String(e830) Value(CPU_E8)

EnumValue
Enum(nds32_cpu_type) String(n9) Value(CPU_N9)

EnumValue
Enum(nds32_cpu_type) String(n903) Value(CPU_N9)

EnumValue
Enum(nds32_cpu_type) String(n903a) Value(CPU_N9)

EnumValue
Enum(nds32_cpu_type) String(n968) Value(CPU_N9)

EnumValue
Enum(nds32_cpu_type) String(n968a) Value(CPU_N9)

EnumValue
Enum(nds32_cpu_type) String(n10) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1033) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1033a) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1033-fpu) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1033-spu) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1068) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1068a) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1068-fpu) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1068a-fpu) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1068-spu) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(n1068a-spu) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(d10) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(d1088) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(d1088-fpu) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) String(d1088-spu) Value(CPU_N10)

EnumValue
Enum(nds32_cpu_type) Undocumented String(graywolf) Value(CPU_GRAYWOLF)

EnumValue
Enum(nds32_cpu_type) String(n15) Value(CPU_GRAYWOLF)

EnumValue
Enum(nds32_cpu_type) String(d15) Value(CPU_GRAYWOLF)

EnumValue
Enum(nds32_cpu_type) String(n15s) Value(CPU_GRAYWOLF)

EnumValue
Enum(nds32_cpu_type) String(d15s) Value(CPU_GRAYWOLF)

EnumValue
Enum(nds32_cpu_type) String(n15f) Value(CPU_GRAYWOLF)

EnumValue
Enum(nds32_cpu_type) String(d15f) Value(CPU_GRAYWOLF)

EnumValue
Enum(nds32_cpu_type) String(n12) Value(CPU_N12)

EnumValue
Enum(nds32_cpu_type) String(n1213) Value(CPU_N12)

EnumValue
Enum(nds32_cpu_type) String(n1233) Value(CPU_N12)

EnumValue
Enum(nds32_cpu_type) String(n1233-fpu) Value(CPU_N12)

EnumValue
Enum(nds32_cpu_type) String(n1233-spu) Value(CPU_N12)

EnumValue
Enum(nds32_cpu_type) String(n13) Value(CPU_N13)

EnumValue
Enum(nds32_cpu_type) String(n1337) Value(CPU_N13)

EnumValue
Enum(nds32_cpu_type) String(n1337-fpu) Value(CPU_N13)

EnumValue
Enum(nds32_cpu_type) String(n1337-spu) Value(CPU_N13)

EnumValue
Enum(nds32_cpu_type) String(simple) Value(CPU_SIMPLE)

mconfig-fpu=
Target RejectNegative Joined Enum(float_reg_number) Var(nds32_fp_regnum) Init(TARGET_CONFIG_FPU_DEFAULT)
Specify a fpu configuration value from 0 to 7; 0-3 is as FPU spec says, and 4-7 is corresponding to 0-3.

Enum
Name(float_reg_number) Type(enum float_reg_number)
Known floating-point number of registers (for use with the -mconfig-fpu= option):

EnumValue
Enum(float_reg_number) String(0) Value(NDS32_CONFIG_FPU_0)

EnumValue
Enum(float_reg_number) String(1) Value(NDS32_CONFIG_FPU_1)

EnumValue
Enum(float_reg_number) String(2) Value(NDS32_CONFIG_FPU_2)

EnumValue
Enum(float_reg_number) String(3) Value(NDS32_CONFIG_FPU_3)

EnumValue
Enum(float_reg_number) String(4) Value(NDS32_CONFIG_FPU_4)

EnumValue
Enum(float_reg_number) String(5) Value(NDS32_CONFIG_FPU_5)

EnumValue
Enum(float_reg_number) String(6) Value(NDS32_CONFIG_FPU_6)

EnumValue
Enum(float_reg_number) String(7) Value(NDS32_CONFIG_FPU_7)

mconfig-mul=
Target RejectNegative Joined Enum(nds32_mul_type) Var(nds32_mul_config) Init(MUL_TYPE_FAST_1)
Specify configuration of instruction mul: fast1, fast2 or slow. The default is fast1.

Enum
Name(nds32_mul_type) Type(enum nds32_mul_type)

EnumValue
Enum(nds32_mul_type) String(fast) Value(MUL_TYPE_FAST_1)

EnumValue
Enum(nds32_mul_type) String(fast1) Value(MUL_TYPE_FAST_1)

EnumValue
Enum(nds32_mul_type) String(fast2) Value(MUL_TYPE_FAST_2)

EnumValue
Enum(nds32_mul_type) String(slow) Value(MUL_TYPE_SLOW)

mconfig-register-ports=
Target RejectNegative Joined Enum(nds32_register_ports) Var(nds32_register_ports_config) Init(REG_PORT_3R2W)
Specify how many read/write ports for n9/n10 cores.  The value should be 3r2w or 2r1w.

Enum
Name(nds32_register_ports) Type(enum nds32_register_ports)

EnumValue
Enum(nds32_register_ports) String(3r2w) Value(REG_PORT_3R2W)

EnumValue
Enum(nds32_register_ports) String(2r1w) Value(REG_PORT_2R1W)

mctor-dtor
Target Report
Enable constructor/destructor feature.

mrelax
Target Report
Guide linker to relax instructions.

mext-fpu-fma
Target Report Mask(EXT_FPU_FMA)
Generate floating-point multiply-accumulation instructions.

mext-fpu-sp
Target Report Mask(FPU_SINGLE)
Generate single-precision floating-point instructions.

mext-fpu-dp
Target Report Mask(FPU_DOUBLE)
Generate double-precision floating-point instructions.

mforce-no-ext-dsp
Target Undocumented Report Mask(FORCE_NO_EXT_DSP)
Force disable hardware loop, even use -mext-dsp.

msched-prolog-epilog
Target Var(flag_sched_prolog_epilog) Init(0)
Permit scheduling of a function's prologue and epilogue sequence.

mret-in-naked-func
Target Var(flag_ret_in_naked_func) Init(1)
Generate return instruction in naked function.

malways-save-lp
Target Var(flag_always_save_lp) Init(0)
Always save $lp in the stack.

munaligned-access
Target Report Var(flag_unaligned_access) Init(0)
Enable unaligned word and halfword accesses to packed data.

minline-asm-r15
Target Report Var(flag_inline_asm_r15) Init(0)
Allow use r15 for inline ASM.