Home | History | Annotate | Line # | Download | only in cris
      1   1.1  mrg ; Options for the CRIS port of the compiler.
      2   1.1  mrg 
      3  1.12  mrg ; Copyright (C) 2005-2022 Free Software Foundation, Inc.
      4   1.1  mrg ;
      5   1.1  mrg ; This file is part of GCC.
      6   1.1  mrg ;
      7   1.1  mrg ; GCC is free software; you can redistribute it and/or modify it under
      8   1.1  mrg ; the terms of the GNU General Public License as published by the Free
      9   1.1  mrg ; Software Foundation; either version 3, or (at your option) any later
     10   1.1  mrg ; version.
     11   1.1  mrg ;
     12   1.1  mrg ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
     13   1.1  mrg ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
     14   1.1  mrg ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     15   1.1  mrg ; for more details.
     16   1.1  mrg ;
     17   1.1  mrg ; You should have received a copy of the GNU General Public License
     18   1.1  mrg ; along with GCC; see the file COPYING3.  If not see
     19   1.1  mrg ; <http://www.gnu.org/licenses/>.
     20   1.1  mrg 
     21   1.1  mrg ; TARGET_MUL_BUG: Whether or not to work around multiplication
     22   1.1  mrg ; instruction hardware bug when generating code for models where
     23   1.1  mrg ; it may be present.  From the trouble report for Etrax 100 LX:
     24   1.6  mrg ; "A multiply operation may cause incorrect cache behavior
     25   1.1  mrg ; under some specific circumstances. The problem can occur if
     26   1.1  mrg ; the instruction following the multiply instruction causes a
     27   1.1  mrg ; cache miss, and multiply operand 1 (source operand) bits
     28   1.1  mrg ; [31:27] matches the logical mapping of the mode register
     29   1.1  mrg ; address (0xb0....), and bits [9:2] of operand 1 matches the
     30   1.1  mrg ; TLB register address (0x258-0x25f).  There is such a mapping
     31   1.1  mrg ; in kernel mode or when the MMU is off.  Normally there is no
     32   1.1  mrg ; such mapping in user mode, and the problem will therefore
     33   1.1  mrg ; probably not occur in Linux user mode programs."
     34   1.1  mrg ;
     35   1.1  mrg ; We have no sure-fire way to know from within GCC that we're
     36   1.1  mrg ; compiling a user program.  For example, -fpic/PIC is used in
     37   1.1  mrg ; libgcc which is linked into the kernel.  However, the
     38   1.1  mrg ; workaround option -mno-mul-bug can be safely used per-package
     39   1.1  mrg ; when compiling programs.  The same goes for general user-only
     40   1.1  mrg ; libraries such as glibc, since there's no user-space
     41   1.1  mrg ; driver-like program that gets a mapping of I/O registers (all
     42   1.1  mrg ; on the same page, including the TLB registers).
     43   1.1  mrg mmul-bug-workaround
     44  1.12  mrg Target Mask(MUL_BUG)
     45   1.6  mrg Work around bug in multiplication instruction.
     46   1.1  mrg 
     47   1.1  mrg ; TARGET_ETRAX4_ADD: Instruction-set additions from Etrax 4 and up.
     48   1.1  mrg ; (Just "lz".)
     49   1.1  mrg metrax4
     50  1.12  mrg Target Mask(ETRAX4_ADD)
     51   1.6  mrg Compile for ETRAX 4 (CRIS v3).
     52   1.1  mrg 
     53   1.1  mrg ; See cris_handle_option.
     54   1.1  mrg metrax100
     55  1.12  mrg Target RejectNegative
     56   1.6  mrg Compile for ETRAX 100 (CRIS v8).
     57   1.1  mrg 
     58   1.1  mrg ; See cris_handle_option.
     59   1.1  mrg mno-etrax100
     60  1.12  mrg Target RejectNegative Undocumented
     61   1.1  mrg 
     62   1.1  mrg mpdebug
     63  1.12  mrg Target Mask(PDEBUG)
     64   1.6  mrg Emit verbose debug information in assembly code.
     65   1.1  mrg 
     66   1.1  mrg ; TARGET_CCINIT: Whether to use condition-codes generated by
     67   1.1  mrg ; insns other than the immediately preceding compare/test insn.
     68   1.1  mrg ; Used to check for errors in notice_update_cc.
     69   1.1  mrg mcc-init
     70  1.12  mrg Target Mask(CCINIT)
     71   1.6  mrg Do not use condition codes from normal instructions.
     72   1.1  mrg 
     73   1.1  mrg ; TARGET_SIDE_EFFECT_PREFIXES: Whether to use side-effect
     74   1.1  mrg ; patterns.  Used to debug the [rx=ry+i] type patterns.
     75   1.1  mrg mside-effects
     76  1.12  mrg Target RejectNegative Mask(SIDE_EFFECT_PREFIXES) Undocumented
     77   1.1  mrg 
     78   1.1  mrg mno-side-effects
     79  1.12  mrg Target RejectNegative InverseMask(SIDE_EFFECT_PREFIXES)
     80   1.6  mrg Do not emit addressing modes with side-effect assignment.
     81   1.1  mrg 
     82   1.1  mrg ; TARGET_STACK_ALIGN: Whether to *keep* (not force) alignment of
     83   1.1  mrg ; stack at 16 (or 32, depending on TARGET_ALIGN_BY_32) bits.
     84   1.1  mrg mstack-align
     85  1.12  mrg Target RejectNegative Mask(STACK_ALIGN) Undocumented
     86   1.1  mrg 
     87   1.1  mrg mno-stack-align
     88  1.12  mrg Target RejectNegative InverseMask(STACK_ALIGN)
     89   1.6  mrg Do not tune stack alignment.
     90   1.1  mrg 
     91   1.1  mrg ; TARGET_DATA_ALIGN: Whether to do alignment on individual
     92   1.1  mrg ; modifiable objects.
     93   1.1  mrg mdata-align
     94  1.12  mrg Target RejectNegative Mask(DATA_ALIGN) Undocumented
     95   1.1  mrg 
     96   1.1  mrg mno-data-align
     97  1.12  mrg Target RejectNegative InverseMask(DATA_ALIGN)
     98   1.6  mrg Do not tune writable data alignment.
     99   1.1  mrg 
    100   1.1  mrg ; TARGET_CONST_ALIGN: Whether to do alignment on individual
    101   1.1  mrg ; non-modifiable objects.
    102   1.1  mrg mconst-align
    103  1.12  mrg Target RejectNegative Mask(CONST_ALIGN) Undocumented
    104   1.1  mrg 
    105   1.1  mrg mno-const-align
    106  1.12  mrg Target RejectNegative InverseMask(CONST_ALIGN)
    107   1.6  mrg Do not tune code and read-only data alignment.
    108   1.1  mrg 
    109   1.1  mrg ; See cris_handle_option.
    110   1.1  mrg m32-bit
    111  1.12  mrg Target RejectNegative Undocumented
    112   1.1  mrg 
    113   1.1  mrg ; See cris_handle_option.
    114   1.1  mrg m32bit
    115  1.12  mrg Target RejectNegative
    116   1.6  mrg Align code and data to 32 bits.
    117   1.1  mrg 
    118   1.1  mrg ; See cris_handle_option.
    119   1.1  mrg m16-bit
    120  1.12  mrg Target RejectNegative Undocumented
    121   1.1  mrg 
    122   1.1  mrg ; See cris_handle_option.
    123   1.1  mrg m16bit
    124  1.12  mrg Target RejectNegative Undocumented
    125   1.1  mrg 
    126   1.1  mrg ; See cris_handle_option.
    127   1.1  mrg m8-bit
    128  1.12  mrg Target RejectNegative Undocumented
    129   1.1  mrg 
    130   1.1  mrg ; See cris_handle_option.
    131   1.1  mrg m8bit
    132  1.12  mrg Target RejectNegative
    133   1.6  mrg Don't align items in code or data.
    134   1.1  mrg 
    135   1.1  mrg ; TARGET_PROLOGUE_EPILOGUE: Whether or not to omit function
    136   1.1  mrg ; prologue and epilogue.
    137   1.1  mrg mprologue-epilogue
    138  1.12  mrg Target RejectNegative Mask(PROLOGUE_EPILOGUE) Undocumented
    139   1.1  mrg 
    140   1.1  mrg mno-prologue-epilogue
    141  1.12  mrg Target RejectNegative InverseMask(PROLOGUE_EPILOGUE)
    142   1.6  mrg Do not emit function prologue or epilogue.
    143   1.1  mrg 
    144   1.1  mrg ; We have to handle this m-option here since we can't wash it
    145   1.1  mrg ; off in both CC1_SPEC and CC1PLUS_SPEC.
    146   1.1  mrg 
    147   1.1  mrg mbest-lib-options
    148  1.12  mrg Target RejectNegative
    149   1.6  mrg Use the most feature-enabling options allowed by other options.
    150   1.1  mrg 
    151   1.1  mrg ; FIXME: The following comment relates to gcc before cris.opt.
    152   1.3  mrg ; Check if it's still valid:
    153   1.1  mrg ; We must call it "override-" since calling it "no-" will cause
    154  1.12  mrg ; gcc.cc to forget it, if there's a "later" -mbest-lib-options.
    155   1.1  mrg ; Kludgy, but needed for some multilibbed files.
    156   1.1  mrg moverride-best-lib-options
    157  1.12  mrg Target RejectNegative
    158   1.6  mrg Override -mbest-lib-options.
    159   1.1  mrg 
    160   1.1  mrg mcpu=
    161  1.12  mrg Target RejectNegative Joined Undocumented Var(cris_cpu_str)
    162   1.1  mrg 
    163   1.1  mrg march=
    164  1.12  mrg Target RejectNegative Joined Var(cris_cpu_str)
    165   1.6  mrg -march=ARCH	Generate code for the specified chip or CPU version.
    166   1.1  mrg 
    167   1.1  mrg mtune=
    168  1.12  mrg Target RejectNegative Joined Var(cris_tune_str)
    169   1.6  mrg -mtune=ARCH	Tune alignment for the specified chip or CPU version.
    170   1.1  mrg 
    171   1.1  mrg mmax-stackframe=
    172  1.12  mrg Target RejectNegative Joined Var(cris_max_stackframe_str)
    173   1.6  mrg -mmax-stackframe=SIZE	Warn when a stackframe is larger than the specified size.
    174   1.1  mrg 
    175   1.1  mrg max-stackframe=
    176  1.12  mrg Target RejectNegative Joined Undocumented Var(cris_max_stackframe_str)
    177   1.1  mrg 
    178   1.3  mrg mtrap-using-break8
    179  1.12  mrg Target Var(cris_trap_using_break8) Init(2)
    180   1.3  mrg Emit traps as \"break 8\", default for CRIS v3 and up.  If disabled, calls to abort() are used.
    181   1.3  mrg 
    182   1.3  mrg mtrap-unaligned-atomic
    183  1.12  mrg Target Var(cris_trap_unaligned_atomic) Init(2)
    184   1.6  mrg Emit checks causing \"break 8\" instructions to execute when applying atomic builtins on misaligned memory.
    185   1.3  mrg 
    186   1.3  mrg munaligned-atomic-may-use-library
    187  1.12  mrg Target Var(cris_atomics_calling_libfunc) Init(2)
    188   1.3  mrg Handle atomic builtins that may be applied to unaligned data by calling library functions. Overrides -mtrap-unaligned-atomic.
    189   1.3  mrg 
    190   1.1  mrg ; TARGET_SVINTO: Currently this just affects alignment.  FIXME:
    191   1.1  mrg ; Redundant with TARGET_ALIGN_BY_32, or put machine stuff here?
    192   1.1  mrg ; This and the others below could just as well be variables and
    193   1.1  mrg ; TARGET_* defines in cris.h.
    194   1.1  mrg Mask(SVINTO)
    195   1.1  mrg 
    196   1.1  mrg ; TARGET_ALIGN_BY_32: Say that all alignment specifications say
    197   1.1  mrg ; to prefer 32 rather than 16 bits.
    198   1.1  mrg Mask(ALIGN_BY_32)
    199