<!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-2015 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: Absolute Literals Directive</title>

<meta name="description" content="Using as: Absolute Literals Directive">
<meta name="keywords" content="Using as: Absolute Literals Directive">
<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="Xtensa-Directives.html#Xtensa-Directives" rel="up" title="Xtensa Directives">
<link href="Z80_002dDependent.html#Z80_002dDependent" rel="next" title="Z80-Dependent">
<link href="Literal-Prefix-Directive.html#Literal-Prefix-Directive" rel="prev" title="Literal Prefix Directive">
<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="Absolute-Literals-Directive"></a>
<div class="header">
<p>
Previous: <a href="Literal-Prefix-Directive.html#Literal-Prefix-Directive" accesskey="p" rel="prev">Literal Prefix Directive</a>, Up: <a href="Xtensa-Directives.html#Xtensa-Directives" accesskey="u" rel="up">Xtensa Directives</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="absolute_002dliterals"></a>
<h4 class="subsubsection">9.52.5.7 absolute-literals</h4>
<a name="index-absolute_002dliterals-directive"></a>
<a name="index-no_002dabsolute_002dliterals-directive"></a>

<p>The <code>absolute-literals</code> and <code>no-absolute-literals</code>
directives control the absolute vs. PC-relative mode for <code>L32R</code>
instructions.  These are relevant only for Xtensa configurations that
include the absolute addressing option for <code>L32R</code> instructions.
</p>
<div class="smallexample">
<pre class="smallexample">    .begin [no-]absolute-literals
    .end [no-]absolute-literals
</pre></div>

<p>These directives do not change the <code>L32R</code> mode&mdash;they only cause
the assembler to emit the appropriate kind of relocation for <code>L32R</code>
instructions and to place the literal values in the appropriate section.
To change the <code>L32R</code> mode, the program must write the
<code>LITBASE</code> special register.  It is the programmer&rsquo;s responsibility
to keep track of the mode and indicate to the assembler which mode is
used in each region of code.
</p>
<p>If the Xtensa configuration includes the absolute <code>L32R</code> addressing
option, the default is to assume absolute <code>L32R</code> addressing unless
the &lsquo;<samp>--no-absolute-literals</samp>&rsquo; command-line option is specified.
Otherwise, the default is to assume PC-relative <code>L32R</code> addressing.
The <code>absolute-literals</code> directive can then be used to override
the default determined by the command-line options.
</p>





</body>
</html>
