hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU Assembler "as".
 
Copyright (C) 1991-2021 Free Software Foundation, Inc.
 
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled "GNU Free Documentation License".
 -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: CRIS-Opts</title>
 
<meta name="description" content="Using as: CRIS-Opts">
<meta name="keywords" content="Using as: CRIS-Opts">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="CRIS_002dDependent.html#CRIS_002dDependent" rel="up" title="CRIS-Dependent">
<link href="CRIS_002dExpand.html#CRIS_002dExpand" rel="next" title="CRIS-Expand">
<link href="CRIS_002dDependent.html#CRIS_002dDependent" rel="previous" title="CRIS-Dependent">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
 
 
</head>
 
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="CRIS_002dOpts"></a>
<div class="header">
<p>
Next: <a href="CRIS_002dExpand.html#CRIS_002dExpand" accesskey="n" rel="next">CRIS-Expand</a>, Up: <a href="CRIS_002dDependent.html#CRIS_002dDependent" accesskey="u" rel="up">CRIS-Dependent</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Command_002dline-Options"></a>
<h4 class="subsection">9.9.1 Command-line Options</h4>
 
<a name="index-options_002c-CRIS"></a>
<a name="index-CRIS-options"></a>
<p>The CRIS version of <code>as</code> has these
machine-dependent command-line options.
</p>
<a name="index-_002d_002demulation_003dcriself-command_002dline-option_002c-CRIS"></a>
<a name="index-_002d_002demulation_003dcrisaout-command_002dline-option_002c-CRIS"></a>
<a name="index-CRIS-_002d_002demulation_003dcriself-command_002dline-option"></a>
<a name="index-CRIS-_002d_002demulation_003dcrisaout-command_002dline-option"></a>
 
<p>The format of the generated object files can be either ELF or
a.out, specified by the command-line options
<samp>--emulation=crisaout</samp> and <samp>--emulation=criself</samp>.
The default is ELF (criself), unless <code>as</code> has been
configured specifically for a.out by using the configuration
name <code>cris-axis-aout</code>.
</p>
<a name="index-_002d_002dunderscore-command_002dline-option_002c-CRIS"></a>
<a name="index-_002d_002dno_002dunderscore-command_002dline-option_002c-CRIS"></a>
<a name="index-CRIS-_002d_002dunderscore-command_002dline-option"></a>
<a name="index-CRIS-_002d_002dno_002dunderscore-command_002dline-option"></a>
<p>There are two different link-incompatible ELF object file
variants for CRIS, for use in environments where symbols are
expected to be prefixed by a leading &lsquo;<samp>_</samp>&rsquo; character and for
environments without such a symbol prefix.  The variant used for
GNU/Linux port has no symbol prefix.  Which variant to produce
is specified by either of the options <samp>--underscore</samp> and
<samp>--no-underscore</samp>.  The default is <samp>--underscore</samp>.
Since symbols in CRIS a.out objects are expected to have a
&lsquo;<samp>_</samp>&rsquo; prefix, specifying <samp>--no-underscore</samp> when
generating a.out objects is an error.  Besides the object format
difference, the effect of this option is to parse register names
differently (see <a href="CRIS_002dPseudos.html#crisnous">crisnous</a>).  The <samp>--no-underscore</samp>
option makes a &lsquo;<samp>$</samp>&rsquo; register prefix mandatory.
</p>
<a name="index-_002d_002dpic-command_002dline-option_002c-CRIS"></a>
<a name="index-CRIS-_002d_002dpic-command_002dline-option"></a>
<a name="index-Position_002dindependent-code_002c-CRIS"></a>
<a name="index-CRIS-position_002dindependent-code"></a>
<p>The option <samp>--pic</samp> must be passed to <code>as</code> in
order to recognize the symbol syntax used for ELF (SVR4 PIC)
position-independent-code (see <a href="CRIS_002dPic.html#crispic">crispic</a>).  This will also
affect expansion of instructions.  The expansion with
<samp>--pic</samp> will use PC-relative rather than (slightly
faster) absolute addresses in those expansions.  This option is only
valid when generating ELF format object files.
</p>
<a name="index-_002d_002dmarch_003darchitecture-command_002dline-option_002c-CRIS"></a>
<a name="index-CRIS-_002d_002dmarch_003darchitecture-command_002dline-option"></a>
<a name="index-Architecture-variant-option_002c-CRIS"></a>
<a name="index-CRIS-architecture-variant-option"></a>
<p>The option <samp>--march=<var>architecture</var></samp>
<a name="march_002doption"></a>specifies the recognized instruction set
and recognized register names.  It also controls the
architecture type of the object file.  Valid values for
<var>architecture</var> are:
</p><dl compact="compact">
<dt><code>v0_v10</code></dt>
<dd><p>All instructions and register names for any architecture variant
in the set v0&hellip;v10 are recognized.  This is the
default if the target is configured as cris-*.
</p>
</dd>
<dt><code>v10</code></dt>
<dd><p>Only instructions and register names for CRIS v10 (as found in
ETRAX 100 LX) are recognized.  This is the default if the target
is configured as crisv10-*.
</p>
</dd>
<dt><code>v32</code></dt>
<dd><p>Only instructions and register names for CRIS v32 (code name
Guinness) are recognized.  This is the default if the target is
configured as crisv32-*.  This value implies
<samp>--no-mul-bug-abort</samp>.  (A subsequent
<samp>--mul-bug-abort</samp> will turn it back on.)
</p>
</dd>
<dt><code>common_v10_v32</code></dt>
<dd><p>Only instructions with register names and addressing modes with
opcodes common to the v10 and v32 are recognized.
</p></dd>
</dl>
 
<a name="index-_002dN-command_002dline-option_002c-CRIS"></a>
<a name="index-CRIS-_002dN-command_002dline-option"></a>
<p>When <samp>-N</samp> is specified, <code>as</code> will emit a
warning when a 16-bit branch instruction is expanded into a
32-bit multiple-instruction construct (see <a href="CRIS_002dExpand.html#CRIS_002dExpand">CRIS-Expand</a>).
</p>
<a name="index-_002d_002dno_002dmul_002dbug_002dabort-command_002dline-option_002c-CRIS"></a>
<a name="index-_002d_002dmul_002dbug_002dabort-command_002dline-option_002c-CRIS"></a>
<a name="index-CRIS-_002d_002dno_002dmul_002dbug_002dabort-command_002dline-option"></a>
<a name="index-CRIS-_002d_002dmul_002dbug_002dabort-command_002dline-option"></a>
 
<p>Some versions of the CRIS v10, for example in the Etrax 100 LX,
contain a bug that causes destabilizing memory accesses when a
multiply instruction is executed with certain values in the
first operand just before a cache-miss.  When the
<samp>--mul-bug-abort</samp> command-line option is active (the
default value), <code>as</code> will refuse to assemble a file
containing a multiply instruction at a dangerous offset, one
that could be the last on a cache-line, or is in a section with
insufficient alignment.  This placement checking does not catch
any case where the multiply instruction is dangerously placed
because it is located in a delay-slot.  The
<samp>--mul-bug-abort</samp> command-line option turns off the
checking.
</p>
<hr>
<div class="header">
<p>
Next: <a href="CRIS_002dExpand.html#CRIS_002dExpand" accesskey="n" rel="next">CRIS-Expand</a>, Up: <a href="CRIS_002dDependent.html#CRIS_002dDependent" accesskey="u" rel="up">CRIS-Dependent</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
</div>
 
 
 
</body>
</html>