<html lang="en"> <head> <title>CRIS-Opts - Using as</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="Using as"> <meta name="generator" content="makeinfo 4.7"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="CRIS_002dDependent.html#CRIS_002dDependent" title="CRIS-Dependent"> <link rel="next" href="CRIS_002dExpand.html#CRIS_002dExpand" title="CRIS-Expand"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- This file documents the GNU Assembler "as". Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2006, 2007 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.1 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''. man end--> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family: serif; font-weight: normal; } --></style> </head> <body> <div class="node"> <p> <a name="CRIS_002dOpts"></a>Next: <a rel="next" accesskey="n" href="CRIS_002dExpand.html#CRIS_002dExpand">CRIS-Expand</a>, Up: <a rel="up" accesskey="u" href="CRIS_002dDependent.html#CRIS_002dDependent">CRIS-Dependent</a> <hr><br> </div> <h4 class="subsection">9.7.1 Command-line Options</h4> <p><a name="index-options_002c-CRIS-669"></a><a name="index-CRIS-options-670"></a>The CRIS version of <code>as</code> has these machine-dependent command-line options. <p><a name="index-_0040option_007b_002d_002demulation_003dcriself_007d-command-line-option_002c-CRIS-671"></a><a name="index-_0040option_007b_002d_002demulation_003dcrisaout_007d-command-line-option_002c-CRIS-672"></a><a name="index-CRIS-_0040option_007b_002d_002demulation_003dcriself_007d-command-line-option-673"></a><a name="index-CRIS-_0040option_007b_002d_002demulation_003dcrisaout_007d-command-line-option-674"></a> The format of the generated object files can be either ELF or a.out, specified by the command-line options <span class="option">--emulation=crisaout</span> and <span class="option">--emulation=criself</span>. 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-_0040option_007b_002d_002dunderscore_007d-command-line-option_002c-CRIS-675"></a><a name="index-_0040option_007b_002d_002dno_002dunderscore_007d-command-line-option_002c-CRIS-676"></a><a name="index-CRIS-_0040option_007b_002d_002dunderscore_007d-command-line-option-677"></a><a name="index-CRIS-_0040option_007b_002d_002dno_002dunderscore_007d-command-line-option-678"></a>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 <span class="samp">_</span> 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 <span class="option">--underscore</span> and <span class="option">--no-underscore</span>. The default is <span class="option">--underscore</span>. Since symbols in CRIS a.out objects are expected to have a <span class="samp">_</span> prefix, specifying <span class="option">--no-underscore</span> 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="crisnous.html#crisnous">crisnous</a>). The <span class="option">--no-underscore</span> option makes a <span class="samp">$</span> register prefix mandatory. <p><a name="index-_0040option_007b_002d_002dpic_007d-command-line-option_002c-CRIS-679"></a><a name="index-CRIS-_0040option_007b_002d_002dpic_007d-command-line-option-680"></a><a name="index-Position_002dindependent-code_002c-CRIS-681"></a><a name="index-CRIS-position_002dindependent-code-682"></a>The option <span class="option">--pic</span> 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="crispic.html#crispic">crispic</a>). This will also affect expansion of instructions. The expansion with <span class="option">--pic</span> will use PC-relative rather than (slightly faster) absolute addresses in those expansions. <p><a name="index-_0040option_007b_002d_002dmarch_003d_0040var_007barchitecture_007d_007d-command-line-option_002c-CRIS-683"></a><a name="index-CRIS-_0040option_007b_002d_002dmarch_003d_0040var_007barchitecture_007d_007d-command-line-option-684"></a><a name="index-Architecture-variant-option_002c-CRIS-685"></a><a name="index-CRIS-architecture-variant-option-686"></a>The option <span class="option">--march=</span><var>architecture</var> <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: <dl> <dt><code>v0_v10</code><dd>All instructions and register names for any architecture variant in the set v0<small class="dots">...</small>v10 are recognized. This is the default if the target is configured as cris-*. <br><dt><code>v10</code><dd>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-*. <br><dt><code>v32</code><dd>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 <span class="option">--no-mul-bug-abort</span>. (A subsequent <span class="option">--mul-bug-abort</span> will turn it back on.) <br><dt><code>common_v10_v32</code><dd>Only instructions with register names and addressing modes with opcodes common to the v10 and v32 are recognized. </dl> <p><a name="index-_0040option_007b_002dN_007d-command-line-option_002c-CRIS-687"></a><a name="index-CRIS-_0040option_007b_002dN_007d-command-line-option-688"></a>When <span class="option">-N</span> 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-_0040option_007b_002d_002dno_002dmul_002dbug_002dabort_007d-command-line-option_002c-CRIS-689"></a><a name="index-_0040option_007b_002d_002dmul_002dbug_002dabort_007d-command-line-option_002c-CRIS-690"></a><a name="index-CRIS-_0040option_007b_002d_002dno_002dmul_002dbug_002dabort_007d-command-line-option-691"></a><a name="index-CRIS-_0040option_007b_002d_002dmul_002dbug_002dabort_007d-command-line-option-692"></a> 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 <span class="option">--mul-bug-abort</span> 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 <span class="option">--mul-bug-abort</span> command line option turns off the checking. </body></html>