You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

s390-Operand-Modifier.html 7.7KB

пре 3 година
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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. Copyright (C) 1991-2020 Free Software Foundation, Inc.
  5. Permission is granted to copy, distribute and/or modify this document
  6. under the terms of the GNU Free Documentation License, Version 1.3
  7. or any later version published by the Free Software Foundation;
  8. with no Invariant Sections, with no Front-Cover Texts, and with no
  9. Back-Cover Texts. A copy of the license is included in the
  10. section entitled "GNU Free Documentation License".
  11. -->
  12. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  13. <head>
  14. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  15. <title>s390 Operand Modifier (Using as)</title>
  16. <meta name="description" content="s390 Operand Modifier (Using as)">
  17. <meta name="keywords" content="s390 Operand Modifier (Using as)">
  18. <meta name="resource-type" content="document">
  19. <meta name="distribution" content="global">
  20. <meta name="Generator" content="makeinfo">
  21. <link href="index.html#Top" rel="start" title="Top">
  22. <link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
  23. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  24. <link href="s390-Syntax.html#s390-Syntax" rel="up" title="s390 Syntax">
  25. <link href="s390-Instruction-Marker.html#s390-Instruction-Marker" rel="next" title="s390 Instruction Marker">
  26. <link href="s390-Aliases.html#s390-Aliases" rel="prev" title="s390 Aliases">
  27. <style type="text/css">
  28. <!--
  29. a.summary-letter {text-decoration: none}
  30. blockquote.indentedblock {margin-right: 0em}
  31. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  32. blockquote.smallquotation {font-size: smaller}
  33. div.display {margin-left: 3.2em}
  34. div.example {margin-left: 3.2em}
  35. div.lisp {margin-left: 3.2em}
  36. div.smalldisplay {margin-left: 3.2em}
  37. div.smallexample {margin-left: 3.2em}
  38. div.smalllisp {margin-left: 3.2em}
  39. kbd {font-style: oblique}
  40. pre.display {font-family: inherit}
  41. pre.format {font-family: inherit}
  42. pre.menu-comment {font-family: serif}
  43. pre.menu-preformatted {font-family: serif}
  44. pre.smalldisplay {font-family: inherit; font-size: smaller}
  45. pre.smallexample {font-size: smaller}
  46. pre.smallformat {font-family: inherit; font-size: smaller}
  47. pre.smalllisp {font-size: smaller}
  48. span.nolinebreak {white-space: nowrap}
  49. span.roman {font-family: initial; font-weight: normal}
  50. span.sansserif {font-family: sans-serif; font-weight: normal}
  51. ul.no-bullet {list-style: none}
  52. -->
  53. </style>
  54. </head>
  55. <body lang="en">
  56. <a name="s390-Operand-Modifier"></a>
  57. <div class="header">
  58. <p>
  59. Next: <a href="s390-Instruction-Marker.html#s390-Instruction-Marker" accesskey="n" rel="next">s390 Instruction Marker</a>, Previous: <a href="s390-Aliases.html#s390-Aliases" accesskey="p" rel="prev">s390 Aliases</a>, Up: <a href="s390-Syntax.html#s390-Syntax" accesskey="u" rel="up">s390 Syntax</a> &nbsp; [<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>
  60. </div>
  61. <hr>
  62. <a name="Instruction-Operand-Modifier"></a>
  63. <h4 class="subsubsection">9.41.3.6 Instruction Operand Modifier</h4>
  64. <a name="index-instruction-operand-modifier_002c-s390"></a>
  65. <a name="index-s390-instruction-operand-modifier"></a>
  66. <p>If a symbol modifier is attached to a symbol in an expression for an
  67. instruction operand field, the symbol term is replaced with a reference
  68. to an object in the global offset table (GOT) or the procedure linkage
  69. table (PLT). The following expressions are allowed:
  70. &lsquo;<samp>symbol@modifier + constant</samp>&rsquo;,
  71. &lsquo;<samp>symbol@modifier + label + constant</samp>&rsquo;, and
  72. &lsquo;<samp>symbol@modifier - label + constant</samp>&rsquo;.
  73. The term &lsquo;<samp>symbol</samp>&rsquo; is the symbol that will be entered into the GOT or
  74. PLT, &lsquo;<samp>label</samp>&rsquo; is a local label, and &lsquo;<samp>constant</samp>&rsquo; is an arbitrary
  75. expression that the assembler can evaluate to a constant value.
  76. </p>
  77. <p>The term &lsquo;<samp>(symbol + constant1)@modifier +/- label + constant2</samp>&rsquo;
  78. is also accepted but a warning message is printed and the term is
  79. converted to &lsquo;<samp>symbol@modifier +/- label + constant1 + constant2</samp>&rsquo;.
  80. </p>
  81. <dl compact="compact">
  82. <dt><code>@got</code></dt>
  83. <dt><code>@got12</code></dt>
  84. <dd><p>The @got modifier can be used for displacement fields, 16-bit immediate
  85. fields and 32-bit pc-relative immediate fields. The @got12 modifier is
  86. synonym to @got. The symbol is added to the GOT. For displacement
  87. fields and 16-bit immediate fields the symbol term is replaced with
  88. the offset from the start of the GOT to the GOT slot for the symbol.
  89. For a 32-bit pc-relative field the pc-relative offset to the GOT
  90. slot from the current instruction address is used.
  91. </p></dd>
  92. <dt><code>@gotent</code></dt>
  93. <dd><p>The @gotent modifier can be used for 32-bit pc-relative immediate fields.
  94. The symbol is added to the GOT and the symbol term is replaced with
  95. the pc-relative offset from the current instruction to the GOT slot for the
  96. symbol.
  97. </p></dd>
  98. <dt><code>@gotoff</code></dt>
  99. <dd><p>The @gotoff modifier can be used for 16-bit immediate fields. The symbol
  100. term is replaced with the offset from the start of the GOT to the
  101. address of the symbol.
  102. </p></dd>
  103. <dt><code>@gotplt</code></dt>
  104. <dd><p>The @gotplt modifier can be used for displacement fields, 16-bit immediate
  105. fields, and 32-bit pc-relative immediate fields. A procedure linkage
  106. table entry is generated for the symbol and a jump slot for the symbol
  107. is added to the GOT. For displacement fields and 16-bit immediate
  108. fields the symbol term is replaced with the offset from the start of the
  109. GOT to the jump slot for the symbol. For a 32-bit pc-relative field
  110. the pc-relative offset to the jump slot from the current instruction
  111. address is used.
  112. </p></dd>
  113. <dt><code>@plt</code></dt>
  114. <dd><p>The @plt modifier can be used for 16-bit and 32-bit pc-relative immediate
  115. fields. A procedure linkage table entry is generated for the symbol.
  116. The symbol term is replaced with the relative offset from the current
  117. instruction to the PLT entry for the symbol.
  118. </p></dd>
  119. <dt><code>@pltoff</code></dt>
  120. <dd><p>The @pltoff modifier can be used for 16-bit immediate fields. The symbol
  121. term is replaced with the offset from the start of the PLT to the address
  122. of the symbol.
  123. </p></dd>
  124. <dt><code>@gotntpoff</code></dt>
  125. <dd><p>The @gotntpoff modifier can be used for displacement fields. The symbol
  126. is added to the static TLS block and the negated offset to the symbol
  127. in the static TLS block is added to the GOT. The symbol term is replaced
  128. with the offset to the GOT slot from the start of the GOT.
  129. </p></dd>
  130. <dt><code>@indntpoff</code></dt>
  131. <dd><p>The @indntpoff modifier can be used for 32-bit pc-relative immediate
  132. fields. The symbol is added to the static TLS block and the negated offset
  133. to the symbol in the static TLS block is added to the GOT. The symbol term
  134. is replaced with the pc-relative offset to the GOT slot from the current
  135. instruction address.
  136. </p></dd>
  137. </dl>
  138. <p>For more information about the thread local storage modifiers
  139. &lsquo;<samp>gotntpoff</samp>&rsquo; and &lsquo;<samp>indntpoff</samp>&rsquo; see the ELF extension documentation
  140. &lsquo;<samp>ELF Handling For Thread-Local Storage</samp>&rsquo;.
  141. </p>
  142. <hr>
  143. <div class="header">
  144. <p>
  145. Next: <a href="s390-Instruction-Marker.html#s390-Instruction-Marker" accesskey="n" rel="next">s390 Instruction Marker</a>, Previous: <a href="s390-Aliases.html#s390-Aliases" accesskey="p" rel="prev">s390 Aliases</a>, Up: <a href="s390-Syntax.html#s390-Syntax" accesskey="u" rel="up">s390 Syntax</a> &nbsp; [<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>
  146. </div>
  147. </body>
  148. </html>