1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<!-- This file documents the GNU Assembler "as". 4 5Copyright (C) 1991-2021 Free Software Foundation, Inc. 6 7Permission is granted to copy, distribute and/or modify this document 8under the terms of the GNU Free Documentation License, Version 1.3 9or any later version published by the Free Software Foundation; 10with no Invariant Sections, with no Front-Cover Texts, and with no 11Back-Cover Texts. A copy of the license is included in the 12section entitled "GNU Free Documentation License". 13 --> 14<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> 15<head> 16<title>Using as: ARM Directives</title> 17 18<meta name="description" content="Using as: ARM Directives"> 19<meta name="keywords" content="Using as: ARM Directives"> 20<meta name="resource-type" content="document"> 21<meta name="distribution" content="global"> 22<meta name="Generator" content="makeinfo"> 23<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 24<link href="index.html#Top" rel="start" title="Top"> 25<link href="AS-Index.html#AS-Index" rel="index" title="AS Index"> 26<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> 27<link href="ARM_002dDependent.html#ARM_002dDependent" rel="up" title="ARM-Dependent"> 28<link href="ARM-Opcodes.html#ARM-Opcodes" rel="next" title="ARM Opcodes"> 29<link href="ARM-Floating-Point.html#ARM-Floating-Point" rel="previous" title="ARM Floating Point"> 30<style type="text/css"> 31<!-- 32a.summary-letter {text-decoration: none} 33blockquote.smallquotation {font-size: smaller} 34div.display {margin-left: 3.2em} 35div.example {margin-left: 3.2em} 36div.indentedblock {margin-left: 3.2em} 37div.lisp {margin-left: 3.2em} 38div.smalldisplay {margin-left: 3.2em} 39div.smallexample {margin-left: 3.2em} 40div.smallindentedblock {margin-left: 3.2em; font-size: smaller} 41div.smalllisp {margin-left: 3.2em} 42kbd {font-style:oblique} 43pre.display {font-family: inherit} 44pre.format {font-family: inherit} 45pre.menu-comment {font-family: serif} 46pre.menu-preformatted {font-family: serif} 47pre.smalldisplay {font-family: inherit; font-size: smaller} 48pre.smallexample {font-size: smaller} 49pre.smallformat {font-family: inherit; font-size: smaller} 50pre.smalllisp {font-size: smaller} 51span.nocodebreak {white-space:nowrap} 52span.nolinebreak {white-space:nowrap} 53span.roman {font-family:serif; font-weight:normal} 54span.sansserif {font-family:sans-serif; font-weight:normal} 55ul.no-bullet {list-style: none} 56--> 57</style> 58 59 60</head> 61 62<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> 63<a name="ARM-Directives"></a> 64<div class="header"> 65<p> 66Next: <a href="ARM-Opcodes.html#ARM-Opcodes" accesskey="n" rel="next">ARM Opcodes</a>, Previous: <a href="ARM-Floating-Point.html#ARM-Floating-Point" accesskey="p" rel="previous">ARM Floating Point</a>, Up: <a href="ARM_002dDependent.html#ARM_002dDependent" accesskey="u" rel="up">ARM-Dependent</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p> 67</div> 68<hr> 69<a name="ARM-Machine-Directives"></a> 70<h4 class="subsection">9.4.4 ARM Machine Directives</h4> 71 72<a name="index-machine-directives_002c-ARM"></a> 73<a name="index-ARM-machine-directives"></a> 74<dl compact="compact"> 75<dd> 76 77 78<a name="index-_002ealign-directive_002c-ARM"></a> 79</dd> 80<dt><code>.align <var>expression</var> [, <var>expression</var>]</code></dt> 81<dd><p>This is the generic <var>.align</var> directive. For the ARM however if the 82first argument is zero (ie no alignment is needed) the assembler will 83behave as if the argument had been 2 (ie pad to the next four byte 84boundary). This is for compatibility with ARM’s own assembler. 85</p> 86<a name="index-_002earch-directive_002c-ARM"></a> 87</dd> 88<dt><code>.arch <var>name</var></code></dt> 89<dd><p>Select the target architecture. Valid values for <var>name</var> are the same as 90for the <samp>-march</samp> command-line option without the instruction set 91extension. 92</p> 93<p>Specifying <code>.arch</code> clears any previously selected architecture 94extensions. 95</p> 96<a name="index-_002earch_005fextension-directive_002c-ARM"></a> 97</dd> 98<dt><code>.arch_extension <var>name</var></code></dt> 99<dd><p>Add or remove an architecture extension to the target architecture. Valid 100values for <var>name</var> are the same as those accepted as architectural 101extensions by the <samp>-mcpu</samp> and <samp>-march</samp> command-line options. 102</p> 103<p><code>.arch_extension</code> may be used multiple times to add or remove extensions 104incrementally to the architecture being compiled for. 105</p> 106<a name="index-_002earm-directive_002c-ARM"></a> 107</dd> 108<dt><code>.arm</code></dt> 109<dd><p>This performs the same action as <var>.code 32</var>. 110</p> 111 112<a name="index-_002ebss-directive_002c-ARM"></a> 113</dd> 114<dt><code>.bss</code></dt> 115<dd><p>This directive switches to the <code>.bss</code> section. 116</p> 117 118<a name="index-_002ecantunwind-directive_002c-ARM"></a> 119</dd> 120<dt><code>.cantunwind</code></dt> 121<dd><p>Prevents unwinding through the current function. No personality routine 122or exception table data is required or permitted. 123</p> 124<a name="index-_002ecode-directive_002c-ARM"></a> 125</dd> 126<dt><code>.code <code>[16|32]</code></code></dt> 127<dd><p>This directive selects the instruction set being generated. The value 16 128selects Thumb, with the value 32 selecting ARM. 129</p> 130<a name="index-_002ecpu-directive_002c-ARM"></a> 131</dd> 132<dt><code>.cpu <var>name</var></code></dt> 133<dd><p>Select the target processor. Valid values for <var>name</var> are the same as 134for the <samp>-mcpu</samp> command-line option without the instruction set 135extension. 136</p> 137<p>Specifying <code>.cpu</code> clears any previously selected architecture 138extensions. 139</p> 140 141<a name="index-_002edn-and-_002eqn-directives_002c-ARM"></a> 142</dd> 143<dt><code><var>name</var> .dn <var>register name</var> [<var>.type</var>] [[<var>index</var>]]</code></dt> 144<dt><code><var>name</var> .qn <var>register name</var> [<var>.type</var>] [[<var>index</var>]]</code></dt> 145<dd> 146<p>The <code>dn</code> and <code>qn</code> directives are used to create typed 147and/or indexed register aliases for use in Advanced SIMD Extension 148(Neon) instructions. The former should be used to create aliases 149of double-precision registers, and the latter to create aliases of 150quad-precision registers. 151</p> 152<p>If these directives are used to create typed aliases, those aliases can 153be used in Neon instructions instead of writing types after the mnemonic 154or after each operand. For example: 155</p> 156<div class="smallexample"> 157<pre class="smallexample"> x .dn d2.f32 158 y .dn d3.f32 159 z .dn d4.f32[1] 160 vmul x,y,z 161</pre></div> 162 163<p>This is equivalent to writing the following: 164</p> 165<div class="smallexample"> 166<pre class="smallexample"> vmul.f32 d2,d3,d4[1] 167</pre></div> 168 169<p>Aliases created using <code>dn</code> or <code>qn</code> can be destroyed using 170<code>unreq</code>. 171</p> 172 173<a name="index-_002eeabi_005fattribute-directive_002c-ARM"></a> 174</dd> 175<dt><code>.eabi_attribute <var>tag</var>, <var>value</var></code></dt> 176<dd><p>Set the EABI object attribute <var>tag</var> to <var>value</var>. 177</p> 178<p>The <var>tag</var> is either an attribute number, or one of the following: 179<code>Tag_CPU_raw_name</code>, <code>Tag_CPU_name</code>, <code>Tag_CPU_arch</code>, 180<code>Tag_CPU_arch_profile</code>, <code>Tag_ARM_ISA_use</code>, 181<code>Tag_THUMB_ISA_use</code>, <code>Tag_FP_arch</code>, <code>Tag_WMMX_arch</code>, 182<code>Tag_Advanced_SIMD_arch</code>, <code>Tag_MVE_arch</code>, <code>Tag_PCS_config</code>, 183<code>Tag_ABI_PCS_R9_use</code>, <code>Tag_ABI_PCS_RW_data</code>, 184<code>Tag_ABI_PCS_RO_data</code>, <code>Tag_ABI_PCS_GOT_use</code>, 185<code>Tag_ABI_PCS_wchar_t</code>, <code>Tag_ABI_FP_rounding</code>, 186<code>Tag_ABI_FP_denormal</code>, <code>Tag_ABI_FP_exceptions</code>, 187<code>Tag_ABI_FP_user_exceptions</code>, <code>Tag_ABI_FP_number_model</code>, 188<code>Tag_ABI_align_needed</code>, <code>Tag_ABI_align_preserved</code>, 189<code>Tag_ABI_enum_size</code>, <code>Tag_ABI_HardFP_use</code>, 190<code>Tag_ABI_VFP_args</code>, <code>Tag_ABI_WMMX_args</code>, 191<code>Tag_ABI_optimization_goals</code>, <code>Tag_ABI_FP_optimization_goals</code>, 192<code>Tag_compatibility</code>, <code>Tag_CPU_unaligned_access</code>, 193<code>Tag_FP_HP_extension</code>, <code>Tag_ABI_FP_16bit_format</code>, 194<code>Tag_MPextension_use</code>, <code>Tag_DIV_use</code>, 195<code>Tag_nodefaults</code>, <code>Tag_also_compatible_with</code>, 196<code>Tag_conformance</code>, <code>Tag_T2EE_use</code>, 197<code>Tag_Virtualization_use</code> 198</p> 199<p>The <var>value</var> is either a <code>number</code>, <code>"string"</code>, or 200<code>number, "string"</code> depending on the tag. 201</p> 202<p>Note - the following legacy values are also accepted by <var>tag</var>: 203<code>Tag_VFP_arch</code>, <code>Tag_ABI_align8_needed</code>, 204<code>Tag_ABI_align8_preserved</code>, <code>Tag_VFP_HP_extension</code>, 205</p> 206<a name="index-_002eeven-directive_002c-ARM"></a> 207</dd> 208<dt><code>.even</code></dt> 209<dd><p>This directive aligns to an even-numbered address. 210</p> 211<a name="index-_002eextend-directive_002c-ARM"></a> 212<a name="index-_002eldouble-directive_002c-ARM"></a> 213</dd> 214<dt><code>.extend <var>expression</var> [, <var>expression</var>]*</code></dt> 215<dt><code>.ldouble <var>expression</var> [, <var>expression</var>]*</code></dt> 216<dd><p>These directives write 12byte long double floating-point values to the 217output section. These are not compatible with current ARM processors 218or ABIs. 219</p> 220 221<a name="index-_002efloat16-directive_002c-ARM"></a> 222</dd> 223<dt><code>.float16 <var>value [,...,value_n]</var></code></dt> 224<dd><p>Place the half precision floating point representation of one or more 225floating-point values into the current section. The exact format of the 226encoding is specified by <code>.float16_format</code>. If the format has not 227been explicitly set yet (either via the <code>.float16_format</code> directive or 228the command line option) then the IEEE 754-2008 format is used. 229</p> 230<a name="index-_002efloat16_005fformat-directive_002c-ARM"></a> 231</dd> 232<dt><code>.float16_format <var>format</var></code></dt> 233<dd><p>Set the format to use when encoding float16 values emitted by 234the <code>.float16</code> directive. 235Once the format has been set it cannot be changed. 236<code>format</code> should be one of the following: <code>ieee</code> (encode in 237the IEEE 754-2008 half precision format) or <code>alternative</code> (encode in 238the Arm alternative half precision format). 239</p> 240<a name="arm_005ffnend"></a><a name="index-_002efnend-directive_002c-ARM"></a> 241</dd> 242<dt><code>.fnend</code></dt> 243<dd><p>Marks the end of a function with an unwind table entry. The unwind index 244table entry is created when this directive is processed. 245</p> 246<p>If no personality routine has been specified then standard personality 247routine 0 or 1 will be used, depending on the number of unwind opcodes 248required. 249</p> 250<a name="arm_005ffnstart"></a><a name="index-_002efnstart-directive_002c-ARM"></a> 251</dd> 252<dt><code>.fnstart</code></dt> 253<dd><p>Marks the start of a function with an unwind table entry. 254</p> 255<a name="index-_002eforce_005fthumb-directive_002c-ARM"></a> 256</dd> 257<dt><code>.force_thumb</code></dt> 258<dd><p>This directive forces the selection of Thumb instructions, even if the 259target processor does not support those instructions 260</p> 261<a name="index-_002efpu-directive_002c-ARM"></a> 262</dd> 263<dt><code>.fpu <var>name</var></code></dt> 264<dd><p>Select the floating-point unit to assemble for. Valid values for <var>name</var> 265are the same as for the <samp>-mfpu</samp> command-line option. 266</p> 267 268<a name="index-_002ehandlerdata-directive_002c-ARM"></a> 269</dd> 270<dt><code>.handlerdata</code></dt> 271<dd><p>Marks the end of the current function, and the start of the exception table 272entry for that function. Anything between this directive and the 273<code>.fnend</code> directive will be added to the exception table entry. 274</p> 275<p>Must be preceded by a <code>.personality</code> or <code>.personalityindex</code> 276directive. 277</p> 278 279<a name="index-_002einst-directive_002c-ARM"></a> 280</dd> 281<dt><code>.inst <var>opcode</var> [ , … ]</code></dt> 282<dt><code>.inst.n <var>opcode</var> [ , … ]</code></dt> 283<dt><code>.inst.w <var>opcode</var> [ , … ]</code></dt> 284<dd><p>Generates the instruction corresponding to the numerical value <var>opcode</var>. 285<code>.inst.n</code> and <code>.inst.w</code> allow the Thumb instruction size to be 286specified explicitly, overriding the normal encoding rules. 287</p> 288 289</dd> 290<dt><code>.ldouble <var>expression</var> [, <var>expression</var>]*</code></dt> 291<dd><p>See <code>.extend</code>. 292</p> 293<a name="index-_002eltorg-directive_002c-ARM"></a> 294</dd> 295<dt><code>.ltorg</code></dt> 296<dd><p>This directive causes the current contents of the literal pool to be 297dumped into the current section (which is assumed to be the .text 298section) at the current location (aligned to a word boundary). 299<code>GAS</code> maintains a separate literal pool for each section and each 300sub-section. The <code>.ltorg</code> directive will only affect the literal 301pool of the current section and sub-section. At the end of assembly 302all remaining, un-empty literal pools will automatically be dumped. 303</p> 304<p>Note - older versions of <code>GAS</code> would dump the current literal 305pool any time a section change occurred. This is no longer done, since 306it prevents accurate control of the placement of literal pools. 307</p> 308 309<a name="index-_002emovsp-directive_002c-ARM"></a> 310</dd> 311<dt><code>.movsp <var>reg</var> [, #<var>offset</var>]</code></dt> 312<dd><p>Tell the unwinder that <var>reg</var> contains an offset from the current 313stack pointer. If <var>offset</var> is not specified then it is assumed to be 314zero. 315</p> 316 317<a name="index-_002eobject_005farch-directive_002c-ARM"></a> 318</dd> 319<dt><code>.object_arch <var>name</var></code></dt> 320<dd><p>Override the architecture recorded in the EABI object attribute section. 321Valid values for <var>name</var> are the same as for the <code>.arch</code> directive. 322Typically this is useful when code uses runtime detection of CPU features. 323</p> 324 325<a name="index-_002epacked-directive_002c-ARM"></a> 326</dd> 327<dt><code>.packed <var>expression</var> [, <var>expression</var>]*</code></dt> 328<dd><p>This directive writes 12-byte packed floating-point values to the 329output section. These are not compatible with current ARM processors 330or ABIs. 331</p> 332<a name="arm_005fpad"></a><a name="index-_002epad-directive_002c-ARM"></a> 333</dd> 334<dt><code>.pad #<var>count</var></code></dt> 335<dd><p>Generate unwinder annotations for a stack adjustment of <var>count</var> bytes. 336A positive value indicates the function prologue allocated stack space by 337decrementing the stack pointer. 338</p> 339<a name="index-_002epersonality-directive_002c-ARM"></a> 340</dd> 341<dt><code>.personality <var>name</var></code></dt> 342<dd><p>Sets the personality routine for the current function to <var>name</var>. 343</p> 344<a name="index-_002epersonalityindex-directive_002c-ARM"></a> 345</dd> 346<dt><code>.personalityindex <var>index</var></code></dt> 347<dd><p>Sets the personality routine for the current function to the EABI standard 348routine number <var>index</var> 349</p> 350<a name="index-_002epool-directive_002c-ARM"></a> 351</dd> 352<dt><code>.pool</code></dt> 353<dd><p>This is a synonym for .ltorg. 354</p> 355 356<a name="index-_002ereq-directive_002c-ARM"></a> 357</dd> 358<dt><code><var>name</var> .req <var>register name</var></code></dt> 359<dd><p>This creates an alias for <var>register name</var> called <var>name</var>. For 360example: 361</p> 362<div class="smallexample"> 363<pre class="smallexample"> foo .req r0 364</pre></div> 365 366 367<a name="arm_005fsave"></a><a name="index-_002esave-directive_002c-ARM"></a> 368</dd> 369<dt><code>.save <var>reglist</var></code></dt> 370<dd><p>Generate unwinder annotations to restore the registers in <var>reglist</var>. 371The format of <var>reglist</var> is the same as the corresponding store-multiple 372instruction. 373</p> 374<div class="smallexample"> 375<pre class="smallexample"><em>core registers</em> 376</pre><pre class="smallexample"> .save {r4, r5, r6, lr} 377 stmfd sp!, {r4, r5, r6, lr} 378</pre><pre class="smallexample"><em>FPA registers</em> 379</pre><pre class="smallexample"> .save f4, 2 380 sfmfd f4, 2, [sp]! 381</pre><pre class="smallexample"><em>VFP registers</em> 382</pre><pre class="smallexample"> .save {d8, d9, d10} 383 fstmdx sp!, {d8, d9, d10} 384</pre><pre class="smallexample"><em>iWMMXt registers</em> 385</pre><pre class="smallexample"> .save {wr10, wr11} 386 wstrd wr11, [sp, #-8]! 387 wstrd wr10, [sp, #-8]! 388or 389 .save wr11 390 wstrd wr11, [sp, #-8]! 391 .save wr10 392 wstrd wr10, [sp, #-8]! 393</pre></div> 394 395<a name="arm_005fsetfp"></a><a name="index-_002esetfp-directive_002c-ARM"></a> 396</dd> 397<dt><code>.setfp <var>fpreg</var>, <var>spreg</var> [, #<var>offset</var>]</code></dt> 398<dd><p>Make all unwinder annotations relative to a frame pointer. Without this 399the unwinder will use offsets from the stack pointer. 400</p> 401<p>The syntax of this directive is the same as the <code>add</code> or <code>mov</code> 402instruction used to set the frame pointer. <var>spreg</var> must be either 403<code>sp</code> or mentioned in a previous <code>.movsp</code> directive. 404</p> 405<div class="smallexample"> 406<pre class="smallexample">.movsp ip 407mov ip, sp 408… 409.setfp fp, ip, #4 410add fp, ip, #4 411</pre></div> 412 413<a name="index-_002esecrel32-directive_002c-ARM"></a> 414</dd> 415<dt><code>.secrel32 <var>expression</var> [, <var>expression</var>]*</code></dt> 416<dd><p>This directive emits relocations that evaluate to the section-relative 417offset of each expression’s symbol. This directive is only supported 418for PE targets. 419</p> 420<a name="index-_002esyntax-directive_002c-ARM"></a> 421</dd> 422<dt><code>.syntax [<code>unified</code> | <code>divided</code>]</code></dt> 423<dd><p>This directive sets the Instruction Set Syntax as described in the 424<a href="ARM_002dInstruction_002dSet.html#ARM_002dInstruction_002dSet">ARM-Instruction-Set</a> section. 425</p> 426 427<a name="index-_002ethumb-directive_002c-ARM"></a> 428</dd> 429<dt><code>.thumb</code></dt> 430<dd><p>This performs the same action as <var>.code 16</var>. 431</p> 432<a name="index-_002ethumb_005ffunc-directive_002c-ARM"></a> 433</dd> 434<dt><code>.thumb_func</code></dt> 435<dd><p>This directive specifies that the following symbol is the name of a 436Thumb encoded function. This information is necessary in order to allow 437the assembler and linker to generate correct code for interworking 438between Arm and Thumb instructions and should be used even if 439interworking is not going to be performed. The presence of this 440directive also implies <code>.thumb</code> 441</p> 442<p>This directive is not necessary when generating EABI objects. On these 443targets the encoding is implicit when generating Thumb code. 444</p> 445<a name="index-_002ethumb_005fset-directive_002c-ARM"></a> 446</dd> 447<dt><code>.thumb_set</code></dt> 448<dd><p>This performs the equivalent of a <code>.set</code> directive in that it 449creates a symbol which is an alias for another symbol (possibly not yet 450defined). This directive also has the added property in that it marks 451the aliased symbol as being a thumb function entry point, in the same 452way that the <code>.thumb_func</code> directive does. 453</p> 454<a name="index-_002etlsdescseq-directive_002c-ARM"></a> 455</dd> 456<dt><code>.tlsdescseq <var>tls-variable</var></code></dt> 457<dd><p>This directive is used to annotate parts of an inlined TLS descriptor 458trampoline. Normally the trampoline is provided by the linker, and 459this directive is not needed. 460</p> 461 462<a name="index-_002eunreq-directive_002c-ARM"></a> 463</dd> 464<dt><code>.unreq <var>alias-name</var></code></dt> 465<dd><p>This undefines a register alias which was previously defined using the 466<code>req</code>, <code>dn</code> or <code>qn</code> directives. For example: 467</p> 468<div class="smallexample"> 469<pre class="smallexample"> foo .req r0 470 .unreq foo 471</pre></div> 472 473<p>An error occurs if the name is undefined. Note - this pseudo op can 474be used to delete builtin in register name aliases (eg ’r0’). This 475should only be done if it is really necessary. 476</p> 477<a name="index-_002eunwind_005fraw-directive_002c-ARM"></a> 478</dd> 479<dt><code>.unwind_raw <var>offset</var>, <var>byte1</var>, …</code></dt> 480<dd><p>Insert one of more arbitrary unwind opcode bytes, which are known to adjust 481the stack pointer by <var>offset</var> bytes. 482</p> 483<p>For example <code>.unwind_raw 4, 0xb1, 0x01</code> is equivalent to 484<code>.save {r0}</code> 485</p> 486 487<a name="index-_002evsave-directive_002c-ARM"></a> 488</dd> 489<dt><code>.vsave <var>vfp-reglist</var></code></dt> 490<dd><p>Generate unwinder annotations to restore the VFP registers in <var>vfp-reglist</var> 491using FLDMD. Also works for VFPv3 registers 492that are to be restored using VLDM. 493The format of <var>vfp-reglist</var> is the same as the corresponding store-multiple 494instruction. 495</p> 496<div class="smallexample"> 497<pre class="smallexample"><em>VFP registers</em> 498</pre><pre class="smallexample"> .vsave {d8, d9, d10} 499 fstmdd sp!, {d8, d9, d10} 500</pre><pre class="smallexample"><em>VFPv3 registers</em> 501</pre><pre class="smallexample"> .vsave {d15, d16, d17} 502 vstm sp!, {d15, d16, d17} 503</pre></div> 504 505<p>Since FLDMX and FSTMX are now deprecated, this directive should be 506used in favour of <code>.save</code> for saving VFP registers for ARMv6 and above. 507</p> 508 509</dd> 510</dl> 511 512<hr> 513<div class="header"> 514<p> 515Next: <a href="ARM-Opcodes.html#ARM-Opcodes" accesskey="n" rel="next">ARM Opcodes</a>, Previous: <a href="ARM-Floating-Point.html#ARM-Floating-Point" accesskey="p" rel="previous">ARM Floating Point</a>, Up: <a href="ARM_002dDependent.html#ARM_002dDependent" accesskey="u" rel="up">ARM-Dependent</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p> 516</div> 517 518 519 520</body> 521</html> 522