<!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-2013 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.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: MMIX-Expand</title>

<meta name="description" content="Using as: MMIX-Expand">
<meta name="keywords" content="Using as: MMIX-Expand">
<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="MMIX_002dDependent.html#MMIX_002dDependent" rel="up" title="MMIX-Dependent">
<link href="MMIX_002dSyntax.html#MMIX_002dSyntax" rel="next" title="MMIX-Syntax">
<link href="MMIX_002dOpts.html#MMIX_002dOpts" rel="prev" title="MMIX-Opts">
<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="MMIX_002dExpand"></a>
<div class="header">
<p>
Next: <a href="MMIX_002dSyntax.html#MMIX_002dSyntax" accesskey="n" rel="next">MMIX-Syntax</a>, Previous: <a href="MMIX_002dOpts.html#MMIX_002dOpts" accesskey="p" rel="prev">MMIX-Opts</a>, Up: <a href="MMIX_002dDependent.html#MMIX_002dDependent" accesskey="u" rel="up">MMIX-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="Instruction-expansion-1"></a>
<h4 class="subsection">9.28.2 Instruction expansion</h4>

<a name="index-instruction-expansion_002c-MMIX"></a>
<p>When <code>as</code> encounters an instruction with an operand that is
either not known or does not fit the operand size of the instruction,
<code>as</code> (and <code>ld</code>) will expand the instruction into
a sequence of instructions semantically equivalent to the operand fitting
the instruction.  Expansion will take place for the following
instructions:
</p>
<dl compact="compact">
<dt>&lsquo;<samp>GETA</samp>&rsquo;</dt>
<dd><p>Expands to a sequence of four instructions: <code>SETL</code>, <code>INCML</code>,
<code>INCMH</code> and <code>INCH</code>.  The operand must be a multiple of four.
</p></dd>
<dt>Conditional branches</dt>
<dd><p>A branch instruction is turned into a branch with the complemented
condition and prediction bit over five instructions; four instructions
setting <code>$255</code> to the operand value, which like with <code>GETA</code> must
be a multiple of four, and a final <code>GO $255,$255,0</code>.
</p></dd>
<dt>&lsquo;<samp>PUSHJ</samp>&rsquo;</dt>
<dd><p>Similar to expansion for conditional branches; four instructions set
<code>$255</code> to the operand value, followed by a <code>PUSHGO $255,$255,0</code>.
</p></dd>
<dt>&lsquo;<samp>JMP</samp>&rsquo;</dt>
<dd><p>Similar to conditional branches and <code>PUSHJ</code>.  The final instruction
is <code>GO $255,$255,0</code>.
</p></dd>
</dl>

<p>The linker <code>ld</code> is expected to shrink these expansions for
code assembled with &lsquo;<samp>--relax</samp>&rsquo; (though not currently implemented).
</p>



</body>
</html>
