neingeist
/
arduinisten
Archived
1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

80 lines
3.1 KiB
HTML

<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>