Home | History | Annotate | Line # | Download | only in cris
cris.opt revision 1.1
      1  1.1  mrg ; Options for the CRIS port of the compiler.
      2  1.1  mrg 
      3  1.1  mrg ; Copyright (C) 2005, 2007 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.1  mrg ; "A multiply operation may cause incorrect cache behaviour
     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.1  mrg Target Report Mask(MUL_BUG)
     45  1.1  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.1  mrg Target Report Mask(ETRAX4_ADD)
     51  1.1  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.1  mrg Target Report RejectNegative
     56  1.1  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.1  mrg Target Report RejectNegative Undocumented
     61  1.1  mrg 
     62  1.1  mrg mpdebug
     63  1.1  mrg Target Report Mask(PDEBUG)
     64  1.1  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.1  mrg Target Report Mask(CCINIT)
     71  1.1  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.1  mrg Target Report RejectNegative Mask(SIDE_EFFECT_PREFIXES) Undocumented
     77  1.1  mrg 
     78  1.1  mrg mno-side-effects
     79  1.1  mrg Target Report RejectNegative InverseMask(SIDE_EFFECT_PREFIXES)
     80  1.1  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.1  mrg Target Report RejectNegative Mask(STACK_ALIGN) Undocumented
     86  1.1  mrg 
     87  1.1  mrg mno-stack-align
     88  1.1  mrg Target Report RejectNegative InverseMask(STACK_ALIGN)
     89  1.1  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.1  mrg Target Report RejectNegative Mask(DATA_ALIGN) Undocumented
     95  1.1  mrg 
     96  1.1  mrg mno-data-align
     97  1.1  mrg Target Report RejectNegative InverseMask(DATA_ALIGN)
     98  1.1  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.1  mrg Target Report RejectNegative Mask(CONST_ALIGN) Undocumented
    104  1.1  mrg 
    105  1.1  mrg mno-const-align
    106  1.1  mrg Target Report RejectNegative InverseMask(CONST_ALIGN)
    107  1.1  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.1  mrg Target Report RejectNegative Undocumented
    112  1.1  mrg 
    113  1.1  mrg ; See cris_handle_option.
    114  1.1  mrg m32bit
    115  1.1  mrg Target Report RejectNegative
    116  1.1  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.1  mrg Target Report RejectNegative Undocumented
    121  1.1  mrg 
    122  1.1  mrg ; See cris_handle_option.
    123  1.1  mrg m16bit
    124  1.1  mrg Target Report RejectNegative Undocumented
    125  1.1  mrg 
    126  1.1  mrg ; See cris_handle_option.
    127  1.1  mrg m8-bit
    128  1.1  mrg Target Report RejectNegative Undocumented
    129  1.1  mrg 
    130  1.1  mrg ; See cris_handle_option.
    131  1.1  mrg m8bit
    132  1.1  mrg Target Report RejectNegative
    133  1.1  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.1  mrg Target Report RejectNegative Mask(PROLOGUE_EPILOGUE) Undocumented
    139  1.1  mrg 
    140  1.1  mrg mno-prologue-epilogue
    141  1.1  mrg Target Report RejectNegative InverseMask(PROLOGUE_EPILOGUE)
    142  1.1  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.1  mrg Target Report RejectNegative
    149  1.1  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.1  mrg ; Check it it's still valid:
    153  1.1  mrg ; We must call it "override-" since calling it "no-" will cause
    154  1.1  mrg ; gcc.c 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.1  mrg Target Report RejectNegative
    158  1.1  mrg Override -mbest-lib-options
    159  1.1  mrg 
    160  1.1  mrg mcpu=
    161  1.1  mrg Target Report RejectNegative Joined Undocumented Var(cris_cpu_str)
    162  1.1  mrg 
    163  1.1  mrg march=
    164  1.1  mrg Target Report RejectNegative Joined Var(cris_cpu_str)
    165  1.1  mrg -march=ARCH	Generate code for the specified chip or CPU version
    166  1.1  mrg 
    167  1.1  mrg mtune=
    168  1.1  mrg Target Report RejectNegative Joined Var(cris_tune_str)
    169  1.1  mrg -mtune=ARCH	Tune alignment for the specified chip or CPU version
    170  1.1  mrg 
    171  1.1  mrg mmax-stackframe=
    172  1.1  mrg Target Report RejectNegative Joined Var(cris_max_stackframe_str)
    173  1.1  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.1  mrg Target Report RejectNegative Joined Undocumented Var(cris_max_stackframe_str)
    177  1.1  mrg 
    178  1.1  mrg ; TARGET_SVINTO: Currently this just affects alignment.  FIXME:
    179  1.1  mrg ; Redundant with TARGET_ALIGN_BY_32, or put machine stuff here?
    180  1.1  mrg ; This and the others below could just as well be variables and
    181  1.1  mrg ; TARGET_* defines in cris.h.
    182  1.1  mrg Mask(SVINTO)
    183  1.1  mrg 
    184  1.1  mrg ; TARGET_ALIGN_BY_32: Say that all alignment specifications say
    185  1.1  mrg ; to prefer 32 rather than 16 bits.
    186  1.1  mrg Mask(ALIGN_BY_32)
    187  1.1  mrg 
    188  1.1  mrg ; TARGET_AVOID_GOTPLT is referred to in the .c and the .md so we
    189  1.1  mrg ; need to allocate the flag and macros here.
    190  1.1  mrg Mask(AVOID_GOTPLT)
    191