neingeist
/
arduinisten
Archived
1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

75 lines
3.4 KiB
HTML

<html lang="en">
<head>
<title>CRIS-Expand - 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="prev" href="CRIS_002dOpts.html#CRIS_002dOpts" title="CRIS-Opts">
<link rel="next" href="CRIS_002dSymbols.html#CRIS_002dSymbols" title="CRIS-Symbols">
<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_002dExpand"></a>Next:&nbsp;<a rel="next" accesskey="n" href="CRIS_002dSymbols.html#CRIS_002dSymbols">CRIS-Symbols</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="CRIS_002dOpts.html#CRIS_002dOpts">CRIS-Opts</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="CRIS_002dDependent.html#CRIS_002dDependent">CRIS-Dependent</a>
<hr><br>
</div>
<h4 class="subsection">9.7.2 Instruction expansion</h4>
<p><a name="index-instruction-expansion_002c-CRIS-693"></a><a name="index-CRIS-instruction-expansion-694"></a><code>as</code> will silently choose an instruction that fits
the operand size for <span class="samp">[register+constant]</span> operands. For
example, the offset <code>127</code> in <code>move.d [r3+127],r4</code> fits
in an instruction using a signed-byte offset. Similarly,
<code>move.d [r2+32767],r1</code> will generate an instruction using a
16-bit offset. For symbolic expressions and constants that do
not fit in 16 bits including the sign bit, a 32-bit offset is
generated.
<p>For branches, <code>as</code> will expand from a 16-bit branch
instruction into a sequence of instructions that can reach a
full 32-bit address. Since this does not correspond to a single
instruction, such expansions can optionally be warned about.
See <a href="CRIS_002dOpts.html#CRIS_002dOpts">CRIS-Opts</a>.
<p>If the operand is found to fit the range, a <code>lapc</code> mnemonic
will translate to a <code>lapcq</code> instruction. Use <code>lapc.d</code>
to force the 32-bit <code>lapc</code> instruction.
<p>Similarly, the <code>addo</code> mnemonic will translate to the
shortest fitting instruction of <code>addoq</code>, <code>addo.w</code> and
<code>addo.d</code>, when used with a operand that is a constant known
at assembly time.
</body></html>