; Options for the Altera Nios II port of the compiler.
; Copyright (C) 2012-2021 Free Software Foundation, Inc.
; Contributed by Altera and Mentor Graphics, 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/>.

HeaderInclude
config/nios2/nios2-opts.h

TargetSave
int saved_fpu_custom_code[n2fpu_code_num]

TargetSave
enum nios2_ccs_code saved_custom_code_status[256]

TargetSave
int saved_custom_code_index[256]

mhw-div
Target Mask(HAS_DIV)
Enable DIV, DIVU.

mhw-mul
Target Mask(HAS_MUL)
Enable MUL instructions.

mhw-mulx
Target Mask(HAS_MULX)
Enable MULX instructions, assume fast shifter.

mfast-sw-div
Target Mask(FAST_SW_DIV)
Use table based fast divide (default at -O3).

mbypass-cache
Target Mask(BYPASS_CACHE)
All memory accesses use I/O load/store instructions.

mno-cache-volatile
Target RejectNegative Mask(BYPASS_CACHE_VOLATILE)
Volatile memory accesses use I/O load/store instructions.

mcache-volatile
Target RejectNegative Undocumented InverseMask(BYPASS_CACHE_VOLATILE)
Volatile memory accesses do not use I/O load/store instructions.

mgpopt=
Target RejectNegative Joined Enum(nios2_gpopt_type) Var(nios2_gpopt_option) Init(gpopt_unspecified)
Enable/disable GP-relative addressing.

Enum
Name(nios2_gpopt_type) Type(enum nios2_gpopt_type)
Valid options for GP-relative addressing (for -mgpopt):

EnumValue
Enum(nios2_gpopt_type) String(none) Value(gpopt_none)

EnumValue
Enum(nios2_gpopt_type) String(local) Value(gpopt_local)

EnumValue
Enum(nios2_gpopt_type) String(global) Value(gpopt_global)

EnumValue
Enum(nios2_gpopt_type) String(data) Value(gpopt_data)

EnumValue
Enum(nios2_gpopt_type) String(all) Value(gpopt_all)

mgpopt
Target RejectNegative Var(nios2_gpopt_option, gpopt_local)
Equivalent to -mgpopt=local.

mno-gpopt
Target RejectNegative Var(nios2_gpopt_option, gpopt_none)
Equivalent to -mgpopt=none.

meb
Target RejectNegative Mask(BIG_ENDIAN)
Use big-endian byte order.

mel
Target RejectNegative InverseMask(BIG_ENDIAN)
Use little-endian byte order.

mcustom-fpu-cfg=
Target RejectNegative Joined Var(nios2_custom_fpu_cfg_string)
Floating point custom instruction configuration name.

mno-custom-ftruncds
Target RejectNegative Var(nios2_custom_ftruncds, -1)
Do not use the ftruncds custom instruction.

mcustom-ftruncds=
Target RejectNegative Joined UInteger Var(nios2_custom_ftruncds) Init(-1)
Integer id (N) of ftruncds custom instruction.

mno-custom-fextsd
Target RejectNegative Var(nios2_custom_fextsd, -1)
Do not use the fextsd custom instruction.

mcustom-fextsd=
Target RejectNegative Joined UInteger Var(nios2_custom_fextsd) Init(-1)
Integer id (N) of fextsd custom instruction.

mno-custom-fixdu
Target RejectNegative Var(nios2_custom_fixdu, -1)
Do not use the fixdu custom instruction.

mcustom-fixdu=
Target RejectNegative Joined UInteger Var(nios2_custom_fixdu) Init(-1)
Integer id (N) of fixdu custom instruction.

mno-custom-fixdi
Target RejectNegative Var(nios2_custom_fixdi, -1)
Do not use the fixdi custom instruction.

mcustom-fixdi=
Target RejectNegative Joined UInteger Var(nios2_custom_fixdi) Init(-1)
Integer id (N) of fixdi custom instruction.

mno-custom-fixsu
Target RejectNegative Var(nios2_custom_fixsu, -1)
Do not use the fixsu custom instruction.

mcustom-fixsu=
Target RejectNegative Joined UInteger Var(nios2_custom_fixsu) Init(-1)
Integer id (N) of fixsu custom instruction.

mno-custom-fixsi
Target RejectNegative Var(nios2_custom_fixsi, -1)
Do not use the fixsi custom instruction.

mcustom-fixsi=
Target RejectNegative Joined UInteger Var(nios2_custom_fixsi) Init(-1)
Integer id (N) of fixsi custom instruction.

mno-custom-floatud
Target RejectNegative Var(nios2_custom_floatud, -1)
Do not use the floatud custom instruction.

mcustom-floatud=
Target RejectNegative Joined UInteger Var(nios2_custom_floatud) Init(-1)
Integer id (N) of floatud custom instruction.

mno-custom-floatid
Target RejectNegative Var(nios2_custom_floatid, -1)
Do not use the floatid custom instruction.

mcustom-floatid=
Target RejectNegative Joined UInteger Var(nios2_custom_floatid) Init(-1)
Integer id (N) of floatid custom instruction.

mno-custom-floatus
Target RejectNegative Var(nios2_custom_floatus, -1)
Do not use the floatus custom instruction.

mcustom-floatus=
Target RejectNegative Joined UInteger Var(nios2_custom_floatus) Init(-1)
Integer id (N) of floatus custom instruction.

mno-custom-floatis
Target RejectNegative Var(nios2_custom_floatis, -1)
Do not use the floatis custom instruction.

mcustom-floatis=
Target RejectNegative Joined UInteger Var(nios2_custom_floatis) Init(-1)
Integer id (N) of floatis custom instruction.

mno-custom-fcmpned
Target RejectNegative Var(nios2_custom_fcmpned, -1)
Do not use the fcmpned custom instruction.

mcustom-fcmpned=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpned) Init(-1)
Integer id (N) of fcmpned custom instruction.

mno-custom-fcmpeqd
Target RejectNegative Var(nios2_custom_fcmpeqd, -1)
Do not use the fcmpeqd custom instruction.

mcustom-fcmpeqd=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpeqd) Init(-1)
Integer id (N) of fcmpeqd custom instruction.

mno-custom-fcmpged
Target RejectNegative Var(nios2_custom_fcmpged, -1)
Do not use the fcmpged custom instruction.

mcustom-fcmpged=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpged) Init(-1)
Integer id (N) of fcmpged custom instruction.

mno-custom-fcmpgtd
Target RejectNegative Var(nios2_custom_fcmpgtd, -1)
Do not use the fcmpgtd custom instruction.

mcustom-fcmpgtd=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpgtd) Init(-1)
Integer id (N) of fcmpgtd custom instruction.

mno-custom-fcmpled
Target RejectNegative Var(nios2_custom_fcmpled, -1)
Do not use the fcmpled custom instruction.

mcustom-fcmpled=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpled) Init(-1)
Integer id (N) of fcmpled custom instruction.

mno-custom-fcmpltd
Target RejectNegative Var(nios2_custom_fcmpltd, -1)
Do not use the fcmpltd custom instruction.

mcustom-fcmpltd=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpltd) Init(-1)
Integer id (N) of fcmpltd custom instruction.

mno-custom-flogd
Target RejectNegative Var(nios2_custom_flogd, -1)
Do not use the flogd custom instruction.

mcustom-flogd=
Target RejectNegative Joined UInteger Var(nios2_custom_flogd) Init(-1)
Integer id (N) of flogd custom instruction.

mno-custom-fexpd
Target RejectNegative Var(nios2_custom_fexpd, -1)
Do not use the fexpd custom instruction.

mcustom-fexpd=
Target RejectNegative Joined UInteger Var(nios2_custom_fexpd) Init(-1)
Integer id (N) of fexpd custom instruction.

mno-custom-fatand
Target RejectNegative Var(nios2_custom_fatand, -1)
Do not use the fatand custom instruction.

mcustom-fatand=
Target RejectNegative Joined UInteger Var(nios2_custom_fatand) Init(-1)
Integer id (N) of fatand custom instruction.

mno-custom-ftand
Target RejectNegative Var(nios2_custom_ftand, -1)
Do not use the ftand custom instruction.

mcustom-ftand=
Target RejectNegative Joined UInteger Var(nios2_custom_ftand) Init(-1)
Integer id (N) of ftand custom instruction.

mno-custom-fsind
Target RejectNegative Var(nios2_custom_fsind, -1)
Do not use the fsind custom instruction.

mcustom-fsind=
Target RejectNegative Joined UInteger Var(nios2_custom_fsind) Init(-1)
Integer id (N) of fsind custom instruction.

mno-custom-fcosd
Target RejectNegative Var(nios2_custom_fcosd, -1)
Do not use the fcosd custom instruction.

mcustom-fcosd=
Target RejectNegative Joined UInteger Var(nios2_custom_fcosd) Init(-1)
Integer id (N) of fcosd custom instruction.

mno-custom-fsqrtd
Target RejectNegative Var(nios2_custom_fsqrtd, -1)
Do not use the fsqrtd custom instruction.

mcustom-fsqrtd=
Target RejectNegative Joined UInteger Var(nios2_custom_fsqrtd) Init(-1)
Integer id (N) of fsqrtd custom instruction.

mno-custom-fabsd
Target RejectNegative Var(nios2_custom_fabsd, -1)
Do not use the fabsd custom instruction.

mcustom-fabsd=
Target RejectNegative Joined UInteger Var(nios2_custom_fabsd) Init(-1)
Integer id (N) of fabsd custom instruction.

mno-custom-fnegd
Target RejectNegative Var(nios2_custom_fnegd, -1)
Do not use the fnegd custom instruction.

mcustom-fnegd=
Target RejectNegative Joined UInteger Var(nios2_custom_fnegd) Init(-1)
Integer id (N) of fnegd custom instruction.

mno-custom-fmaxd
Target RejectNegative Var(nios2_custom_fmaxd, -1)
Do not use the fmaxd custom instruction.

mcustom-fmaxd=
Target RejectNegative Joined UInteger Var(nios2_custom_fmaxd) Init(-1)
Integer id (N) of fmaxd custom instruction.

mno-custom-fmind
Target RejectNegative Var(nios2_custom_fmind, -1)
Do not use the fmind custom instruction.

mcustom-fmind=
Target RejectNegative Joined UInteger Var(nios2_custom_fmind) Init(-1)
Integer id (N) of fmind custom instruction.

mno-custom-fdivd
Target RejectNegative Var(nios2_custom_fdivd, -1)
Do not use the fdivd custom instruction.

mcustom-fdivd=
Target RejectNegative Joined UInteger Var(nios2_custom_fdivd) Init(-1)
Integer id (N) of fdivd custom instruction.

mno-custom-fmuld
Target RejectNegative Var(nios2_custom_fmuld, -1)
Do not use the fmuld custom instruction.

mcustom-fmuld=
Target RejectNegative Joined UInteger Var(nios2_custom_fmuld) Init(-1)
Integer id (N) of fmuld custom instruction.

mno-custom-fsubd
Target RejectNegative Var(nios2_custom_fsubd, -1)
Do not use the fsubd custom instruction.

mcustom-fsubd=
Target RejectNegative Joined UInteger Var(nios2_custom_fsubd) Init(-1)
Integer id (N) of fsubd custom instruction.

mno-custom-faddd
Target RejectNegative Var(nios2_custom_faddd, -1)
Do not use the faddd custom instruction.

mcustom-faddd=
Target RejectNegative Joined UInteger Var(nios2_custom_faddd) Init(-1)
Integer id (N) of faddd custom instruction.

mno-custom-fcmpnes
Target RejectNegative Var(nios2_custom_fcmpnes, -1)
Do not use the fcmpnes custom instruction.

mcustom-fcmpnes=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpnes) Init(-1)
Integer id (N) of fcmpnes custom instruction.

mno-custom-fcmpeqs
Target RejectNegative Var(nios2_custom_fcmpeqs, -1)
Do not use the fcmpeqs custom instruction.

mcustom-fcmpeqs=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpeqs) Init(-1)
Integer id (N) of fcmpeqs custom instruction.

mno-custom-fcmpges
Target RejectNegative Var(nios2_custom_fcmpges, -1)
Do not use the fcmpges custom instruction.

mcustom-fcmpges=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpges) Init(-1)
Integer id (N) of fcmpges custom instruction.

mno-custom-fcmpgts
Target RejectNegative Var(nios2_custom_fcmpgts, -1)
Do not use the fcmpgts custom instruction.

mcustom-fcmpgts=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmpgts) Init(-1)
Integer id (N) of fcmpgts custom instruction.

mno-custom-fcmples
Target RejectNegative Var(nios2_custom_fcmples, -1)
Do not use the fcmples custom instruction.

mcustom-fcmples=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmples) Init(-1)
Integer id (N) of fcmples custom instruction.

mno-custom-fcmplts
Target RejectNegative Var(nios2_custom_fcmplts, -1)
Do not use the fcmplts custom instruction.

mcustom-fcmplts=
Target RejectNegative Joined UInteger Var(nios2_custom_fcmplts) Init(-1)
Integer id (N) of fcmplts custom instruction.

mno-custom-flogs
Target RejectNegative Var(nios2_custom_flogs, -1)
Do not use the flogs custom instruction.

mcustom-flogs=
Target RejectNegative Joined UInteger Var(nios2_custom_flogs) Init(-1)
Integer id (N) of flogs custom instruction.

mno-custom-fexps
Target RejectNegative Var(nios2_custom_fexps, -1)
Do not use the fexps custom instruction.

mcustom-fexps=
Target RejectNegative Joined UInteger Var(nios2_custom_fexps) Init(-1)
Integer id (N) of fexps custom instruction.

mno-custom-fatans
Target RejectNegative Var(nios2_custom_fatans, -1)
Do not use the fatans custom instruction.

mcustom-fatans=
Target RejectNegative Joined UInteger Var(nios2_custom_fatans) Init(-1)
Integer id (N) of fatans custom instruction.

mno-custom-ftans
Target RejectNegative Var(nios2_custom_ftans, -1)
Do not use the ftans custom instruction.

mcustom-ftans=
Target RejectNegative Joined UInteger Var(nios2_custom_ftans) Init(-1)
Integer id (N) of ftans custom instruction.

mno-custom-fsins
Target RejectNegative Var(nios2_custom_fsins, -1)
Do not use the fsins custom instruction.

mcustom-fsins=
Target RejectNegative Joined UInteger Var(nios2_custom_fsins) Init(-1)
Integer id (N) of fsins custom instruction.

mno-custom-fcoss
Target RejectNegative Var(nios2_custom_fcoss, -1)
Do not use the fcoss custom instruction.

mcustom-fcoss=
Target RejectNegative Joined UInteger Var(nios2_custom_fcoss) Init(-1)
Integer id (N) of fcoss custom instruction.

mno-custom-fsqrts
Target RejectNegative Var(nios2_custom_fsqrts, -1)
Do not use the fsqrts custom instruction.

mcustom-fsqrts=
Target RejectNegative Joined UInteger Var(nios2_custom_fsqrts) Init(-1)
Integer id (N) of fsqrts custom instruction.

mno-custom-fabss
Target RejectNegative Var(nios2_custom_fabss, -1)
Do not use the fabss custom instr.

mcustom-fabss=
Target RejectNegative Joined UInteger Var(nios2_custom_fabss) Init(-1)
Integer id (N) of fabss custom instruction.

mno-custom-fnegs
Target RejectNegative Var(nios2_custom_fnegs, -1)
Do not use the fnegs custom instruction.

mcustom-fnegs=
Target RejectNegative Joined UInteger Var(nios2_custom_fnegs) Init(-1)
Integer id (N) of fnegs custom instruction.

mno-custom-fmaxs
Target RejectNegative Var(nios2_custom_fmaxs, -1)
Do not use the fmaxs custom instruction.

mcustom-fmaxs=
Target RejectNegative Joined UInteger Var(nios2_custom_fmaxs) Init(-1)
Integer id (N) of fmaxs custom instruction.

mno-custom-fmins
Target RejectNegative Var(nios2_custom_fmins, -1)
Do not use the fmins custom instruction.

mcustom-fmins=
Target RejectNegative Joined UInteger Var(nios2_custom_fmins) Init(-1)
Integer id (N) of fmins custom instruction.

mno-custom-fdivs
Target RejectNegative Var(nios2_custom_fdivs, -1)
Do not use the fdivs custom instruction.

mcustom-fdivs=
Target RejectNegative Joined UInteger Var(nios2_custom_fdivs) Init(-1)
Integer id (N) of fdivs custom instruction.

mno-custom-fmuls
Target RejectNegative Var(nios2_custom_fmuls, -1)
Do not use the fmuls custom instruction.

mcustom-fmuls=
Target RejectNegative Joined UInteger Var(nios2_custom_fmuls) Init(-1)
Integer id (N) of fmuls custom instruction.

mno-custom-fsubs
Target RejectNegative Var(nios2_custom_fsubs, -1)
Do not use the fsubs custom instruction.

mcustom-fsubs=
Target RejectNegative Joined UInteger Var(nios2_custom_fsubs) Init(-1)
Integer id (N) of fsubs custom instruction.

mno-custom-fadds
Target RejectNegative Var(nios2_custom_fadds, -1)
Do not use the fadds custom instruction.

mcustom-fadds=
Target RejectNegative Joined UInteger Var(nios2_custom_fadds) Init(-1)
Integer id (N) of fadds custom instruction.

mno-custom-frdy
Target RejectNegative Var(nios2_custom_frdy, -1)
Do not use the frdy custom instruction.

mcustom-frdy=
Target RejectNegative Joined UInteger Var(nios2_custom_frdy) Init(-1)
Integer id (N) of frdy custom instruction.

mno-custom-frdxhi
Target RejectNegative Var(nios2_custom_frdxhi, -1)
Do not use the frdxhi custom instruction.

mcustom-frdxhi=
Target RejectNegative Joined UInteger Var(nios2_custom_frdxhi) Init(-1)
Integer id (N) of frdxhi custom instruction.

mno-custom-frdxlo
Target RejectNegative Var(nios2_custom_frdxlo, -1)
Do not use the frdxlo custom instruction.

mcustom-frdxlo=
Target RejectNegative Joined UInteger Var(nios2_custom_frdxlo) Init(-1)
Integer id (N) of frdxlo custom instruction.

mno-custom-fwry
Target RejectNegative Var(nios2_custom_fwry, -1)
Do not use the fwry custom instruction.

mcustom-fwry=
Target RejectNegative Joined UInteger Var(nios2_custom_fwry) Init(-1)
Integer id (N) of fwry custom instruction.

mno-custom-fwrx
Target RejectNegative Var(nios2_custom_fwrx, -1)
Do not use the fwrx custom instruction.

mcustom-fwrx=
Target RejectNegative Joined UInteger Var(nios2_custom_fwrx) Init(-1)
Integer id (N) of fwrx custom instruction.

mno-custom-round
Target RejectNegative Var(nios2_custom_round, -1)
Do not use the round custom instruction.

mcustom-round=
Target RejectNegative Joined UInteger Var(nios2_custom_round) Init(-1)
Integer id (N) of round custom instruction.

march=
Target RejectNegative Joined Enum(nios2_arch_type) Var(nios2_arch_option) Init(ARCH_R1)
Specify the name of the target architecture.

Enum
Name(nios2_arch_type) Type(enum nios2_arch_type)
Valid Nios II ISA levels (for -march):

EnumValue
Enum(nios2_arch_type) String(r1) Value(ARCH_R1)

EnumValue
Enum(nios2_arch_type) String(r2) Value(ARCH_R2)

mbmx
Target Mask(HAS_BMX)
Enable generation of R2 BMX instructions.

mcdx
Target Mask(HAS_CDX)
Enable generation of R2 CDX instructions.

mgprel-sec=
Target RejectNegative Joined Var(nios2_gprel_sec) Init(NULL)
Regular expression matching additional GP-addressible section names.

mr0rel-sec=
Target RejectNegative Joined Var(nios2_r0rel_sec) Init(NULL)
Regular expression matching section names for r0-relative addressing.
