<html lang="en">
<head>
<title>ARM-Relocations - 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="ARM-Syntax.html#ARM-Syntax" title="ARM Syntax">
<link rel="prev" href="ARM_002dRegs.html#ARM_002dRegs" title="ARM-Regs">
<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="ARM_002dRelocations"></a>Previous:&nbsp;<a rel="previous" accesskey="p" href="ARM_002dRegs.html#ARM_002dRegs">ARM-Regs</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="ARM-Syntax.html#ARM-Syntax">ARM Syntax</a>
<hr><br>
</div>

<h5 class="subsubsection">9.3.3.1 ARM relocation generation</h5>

<p><a name="index-data-relocations_002c-ARM-597"></a><a name="index-ARM-data-relocations-598"></a>Specific data relocations can be generated by putting the relocation name
in parentheses after the symbol name.  For example:

<pre class="smallexample">             .word foo(TARGET1)
</pre>
   <p>This will generate an <span class="samp">R_ARM_TARGET1</span> relocation against the symbol
<var>foo</var>. 
The following relocations are supported:
<code>GOT</code>,
<code>GOTOFF</code>,
<code>TARGET1</code>,
<code>TARGET2</code>,
<code>SBREL</code>,
<code>TLSGD</code>,
<code>TLSLDM</code>,
<code>TLSLDO</code>,
<code>GOTTPOFF</code>
and
<code>TPOFF</code>.

   <p>For compatibility with older toolchains the assembler also accepts
<code>(PLT)</code> after branch targets.  This will generate the deprecated
<span class="samp">R_ARM_PLT32</span> relocation.

   <p><a name="index-MOVW-and-MOVT-relocations_002c-ARM-599"></a>Relocations for <span class="samp">MOVW</span> and <span class="samp">MOVT</span> instructions can be generated
by prefixing the value with <span class="samp">#:lower16:</span> and <span class="samp">#:upper16</span>
respectively.  For example to load the 32-bit address of foo into r0:

<pre class="smallexample">             MOVW r0, #:lower16:foo
             MOVT r0, #:upper16:foo
</pre>
   </body></html>