<html lang="en"> <head> <title>Xtensa Relaxation - 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="Xtensa_002dDependent.html#Xtensa_002dDependent" title="Xtensa-Dependent"> <link rel="prev" href="Xtensa-Optimizations.html#Xtensa-Optimizations" title="Xtensa Optimizations"> <link rel="next" href="Xtensa-Directives.html#Xtensa-Directives" title="Xtensa Directives"> <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="Xtensa-Relaxation"></a>Next: <a rel="next" accesskey="n" href="Xtensa-Directives.html#Xtensa-Directives">Xtensa Directives</a>, Previous: <a rel="previous" accesskey="p" href="Xtensa-Optimizations.html#Xtensa-Optimizations">Xtensa Optimizations</a>, Up: <a rel="up" accesskey="u" href="Xtensa_002dDependent.html#Xtensa_002dDependent">Xtensa-Dependent</a> <hr><br> </div> <h4 class="subsection">9.36.4 Xtensa Relaxation</h4> <p><a name="index-relaxation-1863"></a> When an instruction operand is outside the range allowed for that particular instruction field, <span class="command">as</span> can transform the code to use a functionally-equivalent instruction or sequence of instructions. This process is known as <dfn>relaxation</dfn>. This is typically done for branch instructions because the distance of the branch targets is not known until assembly-time. The Xtensa assembler offers branch relaxation and also extends this concept to function calls, <code>MOVI</code> instructions and other instructions with immediate fields. <ul class="menu"> <li><a accesskey="1" href="Xtensa-Branch-Relaxation.html#Xtensa-Branch-Relaxation">Xtensa Branch Relaxation</a>: Relaxation of Branches. <li><a accesskey="2" href="Xtensa-Call-Relaxation.html#Xtensa-Call-Relaxation">Xtensa Call Relaxation</a>: Relaxation of Function Calls. <li><a accesskey="3" href="Xtensa-Immediate-Relaxation.html#Xtensa-Immediate-Relaxation">Xtensa Immediate Relaxation</a>: Relaxation of other Immediate Fields. </ul> </body></html>