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