Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

MIPS-NaN-Encodings.html 5.8KB

3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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>MIPS NaN Encodings (Using as)</title>
  16. <meta name="description" content="MIPS NaN Encodings (Using as)">
  17. <meta name="keywords" content="MIPS NaN Encodings (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="MIPS_002dDependent.html#MIPS_002dDependent" rel="up" title="MIPS-Dependent">
  25. <link href="MIPS-Option-Stack.html#MIPS-Option-Stack" rel="next" title="MIPS Option Stack">
  26. <link href="MIPS-FP-ABI-Compatibility.html#MIPS-FP-ABI-Compatibility" rel="prev" title="MIPS FP ABI Compatibility">
  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="MIPS-NaN-Encodings"></a>
  57. <div class="header">
  58. <p>
  59. Next: <a href="MIPS-Option-Stack.html#MIPS-Option-Stack" accesskey="n" rel="next">MIPS Option Stack</a>, Previous: <a href="MIPS-FP-ABIs.html#MIPS-FP-ABIs" accesskey="p" rel="prev">MIPS FP ABIs</a>, Up: <a href="MIPS_002dDependent.html#MIPS_002dDependent" accesskey="u" rel="up">MIPS-Dependent</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="Directives-to-record-which-NaN-encoding-is-being-used"></a>
  63. <h4 class="subsection">9.27.10 Directives to record which NaN encoding is being used</h4>
  64. <a name="index-MIPS-IEEE-754-NaN-data-encoding-selection"></a>
  65. <a name="index-_002enan-directive_002c-MIPS"></a>
  66. <p>The IEEE 754 floating-point standard defines two types of not-a-number
  67. (NaN) data: &ldquo;signalling&rdquo; NaNs and &ldquo;quiet&rdquo; NaNs. The original version
  68. of the standard did not specify how these two types should be
  69. distinguished. Most implementations followed the i387 model, in which
  70. the first bit of the significand is set for quiet NaNs and clear for
  71. signalling NaNs. However, the original MIPS implementation assigned the
  72. opposite meaning to the bit, so that it was set for signalling NaNs and
  73. clear for quiet NaNs.
  74. </p>
  75. <p>The 2008 revision of the standard formally suggested the i387 choice
  76. and as from Sep 2012 the current release of the MIPS architecture
  77. therefore optionally supports that form. Code that uses one NaN encoding
  78. would usually be incompatible with code that uses the other NaN encoding,
  79. so MIPS ELF objects have a flag (<code>EF_MIPS_NAN2008</code>) to record which
  80. encoding is being used.
  81. </p>
  82. <p>Assembly files can use the <code>.nan</code> directive to select between the
  83. two encodings. &lsquo;<samp>.nan 2008</samp>&rsquo; says that the assembly file uses the
  84. IEEE 754-2008 encoding while &lsquo;<samp>.nan legacy</samp>&rsquo; says that the file uses
  85. the original MIPS encoding. If several <code>.nan</code> directives are given,
  86. the final setting is the one that is used.
  87. </p>
  88. <p>The command-line options <samp>-mnan=legacy</samp> and <samp>-mnan=2008</samp>
  89. can be used instead of &lsquo;<samp>.nan legacy</samp>&rsquo; and &lsquo;<samp>.nan 2008</samp>&rsquo;
  90. respectively. However, any <code>.nan</code> directive overrides the
  91. command-line setting.
  92. </p>
  93. <p>&lsquo;<samp>.nan legacy</samp>&rsquo; is the default if no <code>.nan</code> directive or
  94. <samp>-mnan</samp> option is given.
  95. </p>
  96. <p>Note that <small>GNU</small> <code>as</code> does not produce NaNs itself and
  97. therefore these directives do not affect code generation. They simply
  98. control the setting of the <code>EF_MIPS_NAN2008</code> flag.
  99. </p>
  100. <p>Traditional MIPS assemblers do not support these directives.
  101. </p>
  102. <hr>
  103. <div class="header">
  104. <p>
  105. Next: <a href="MIPS-Option-Stack.html#MIPS-Option-Stack" accesskey="n" rel="next">MIPS Option Stack</a>, Previous: <a href="MIPS-FP-ABIs.html#MIPS-FP-ABIs" accesskey="p" rel="prev">MIPS FP ABIs</a>, Up: <a href="MIPS_002dDependent.html#MIPS_002dDependent" accesskey="u" rel="up">MIPS-Dependent</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>
  106. </div>
  107. </body>
  108. </html>