blob: 2d6ca34785e4bd8324a6348b63093cb86bb7c0b9 [file] [log] [blame]
<html lang="en">
<head>
<title>s390 Instruction Marker - 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-Operand-Modifier.html#s390-Operand-Modifier" title="s390 Operand Modifier">
<link rel="next" href="s390-Literal-Pool-Entries.html#s390-Literal-Pool-Entries" title="s390 Literal Pool Entries">
<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-Instruction-Marker"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="s390-Literal-Pool-Entries.html#s390-Literal-Pool-Entries">s390 Literal Pool Entries</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="s390-Operand-Modifier.html#s390-Operand-Modifier">s390 Operand Modifier</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.7 Instruction Marker</h5>
<p><a name="index-instruction-marker_002c-s390-1546"></a><a name="index-s390-instruction-marker-1547"></a>
The thread local storage instruction markers are used by the linker to
perform code optimization.
<dl>
<dt><code>:tls_load</code><dd>The :tls_load marker is used to flag the load instruction in the initial
exec TLS model that retrieves the offset from the thread pointer to a
thread local storage variable from the GOT.
<br><dt><code>:tls_gdcall</code><dd>The :tls_gdcall marker is used to flag the branch-and-save instruction to
the __tls_get_offset function in the global dynamic TLS model.
<br><dt><code>:tls_ldcall</code><dd>The :tls_ldcall marker is used to flag the branch-and-save instruction to
the __tls_get_offset function in the local dynamic TLS model.
</dl>
<p>For more information about the thread local storage instruction marker
and the linker optimizations see the ELF extension documentation
&lsquo;<samp><span class="samp">ELF Handling For Thread-Local Storage</span></samp>&rsquo;.
</body></html>