<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: <a rel="previous" accesskey="p" href="ARM_002dRegs.html#ARM_002dRegs">ARM-Regs</a>, Up: <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>