blob: 2855d9181847e1489c009432f6417a07f9c6b477 [file] [log] [blame]
<html lang="en">
<head>
<title>s390 Literal Pool Entries - Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="s390-Syntax.html#s390-Syntax" title="s390 Syntax">
<link rel="prev" href="s390-Instruction-Marker.html#s390-Instruction-Marker" title="s390 Instruction Marker">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".
Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2006, 2007, 2008, 2009, 2010 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''.
-->
<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; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="s390-Literal-Pool-Entries"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="s390-Instruction-Marker.html#s390-Instruction-Marker">s390 Instruction Marker</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="s390-Syntax.html#s390-Syntax">s390 Syntax</a>
<hr>
</div>
<h5 class="subsubsection">9.31.3.8 Literal Pool Entries</h5>
<p><a name="index-literal-pool-entries_002c-s390-1548"></a><a name="index-s390-literal-pool-entries-1549"></a>
A literal pool is a collection of values. To access the values a pointer
to the literal pool is loaded to a register, the literal pool register.
Usually, register %r13 is used as the literal pool register
(<a href="s390-Register.html#s390-Register">s390 Register</a>). Literal pool entries are created by adding the
suffix :lit1, :lit2, :lit4, or :lit8 to the end of an expression for an
instruction operand. The expression is added to the literal pool and the
operand is replaced with the offset to the literal in the literal pool.
<dl>
<dt><code>:lit1</code><dd>The literal pool entry is created as an 8-bit value. An operand modifier
must not be used for the original expression.
<br><dt><code>:lit2</code><dd>The literal pool entry is created as a 16 bit value. The operand modifier
@got may be used in the original expression. The term &lsquo;<samp><span class="samp">x@got:lit2</span></samp>&rsquo;
will put the got offset for the global symbol x to the literal pool as
16 bit value.
<br><dt><code>:lit4</code><dd>The literal pool entry is created as a 32-bit value. The operand modifier
@got and @plt may be used in the original expression. The term
&lsquo;<samp><span class="samp">x@got:lit4</span></samp>&rsquo; will put the got offset for the global symbol x to the
literal pool as a 32-bit value. The term &lsquo;<samp><span class="samp">x@plt:lit4</span></samp>&rsquo; will put the
plt offset for the global symbol x to the literal pool as a 32-bit value.
<br><dt><code>:lit8</code><dd>The literal pool entry is created as a 64-bit value. The operand modifier
@got and @plt may be used in the original expression. The term
&lsquo;<samp><span class="samp">x@got:lit8</span></samp>&rsquo; will put the got offset for the global symbol x to the
literal pool as a 64-bit value. The term &lsquo;<samp><span class="samp">x@plt:lit8</span></samp>&rsquo; will put the
plt offset for the global symbol x to the literal pool as a 64-bit value.
</dl>
<p>The assembler directive &lsquo;<samp><span class="samp">.ltorg</span></samp>&rsquo; is used to emit all literal pool
entries to the current position.
</body></html>