i386_002dBugs.html 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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-2017 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 5.2, http://www.gnu.org/software/texinfo/ -->
  13. <head>
  14. <title>Using as: i386-Bugs</title>
  15. <meta name="description" content="Using as: i386-Bugs">
  16. <meta name="keywords" content="Using as: i386-Bugs">
  17. <meta name="resource-type" content="document">
  18. <meta name="distribution" content="global">
  19. <meta name="Generator" content="makeinfo">
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  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="i386_002dDependent.html#i386_002dDependent" rel="up" title="i386-Dependent">
  25. <link href="i386_002dNotes.html#i386_002dNotes" rel="next" title="i386-Notes">
  26. <link href="i386_002dArch.html#i386_002dArch" rel="prev" title="i386-Arch">
  27. <style type="text/css">
  28. <!--
  29. a.summary-letter {text-decoration: none}
  30. blockquote.smallquotation {font-size: smaller}
  31. div.display {margin-left: 3.2em}
  32. div.example {margin-left: 3.2em}
  33. div.indentedblock {margin-left: 3.2em}
  34. div.lisp {margin-left: 3.2em}
  35. div.smalldisplay {margin-left: 3.2em}
  36. div.smallexample {margin-left: 3.2em}
  37. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  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.nocodebreak {white-space:nowrap}
  49. span.nolinebreak {white-space:nowrap}
  50. span.roman {font-family:serif; font-weight:normal}
  51. span.sansserif {font-family:sans-serif; font-weight:normal}
  52. ul.no-bullet {list-style: none}
  53. -->
  54. </style>
  55. </head>
  56. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  57. <a name="i386_002dBugs"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="i386_002dNotes.html#i386_002dNotes" accesskey="n" rel="next">i386-Notes</a>, Previous: <a href="i386_002dArch.html#i386_002dArch" accesskey="p" rel="prev">i386-Arch</a>, Up: <a href="i386_002dDependent.html#i386_002dDependent" accesskey="u" rel="up">i386-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>
  61. </div>
  62. <hr>
  63. <a name="AT_0026T-Syntax-bugs"></a>
  64. <h4 class="subsection">9.15.16 AT&amp;T Syntax bugs</h4>
  65. <p>The UnixWare assembler, and probably other AT&amp;T derived ix86 Unix
  66. assemblers, generate floating point instructions with reversed source
  67. and destination registers in certain cases. Unfortunately, gcc and
  68. possibly many other programs use this reversed syntax, so we&rsquo;re stuck
  69. with it.
  70. </p>
  71. <p>For example
  72. </p>
  73. <div class="smallexample">
  74. <pre class="smallexample"> fsub %st,%st(3)
  75. </pre></div>
  76. <p>results in &lsquo;<samp>%st(3)</samp>&rsquo; being updated to &lsquo;<samp>%st - %st(3)</samp>&rsquo; rather
  77. than the expected &lsquo;<samp>%st(3) - %st</samp>&rsquo;. This happens with all the
  78. non-commutative arithmetic floating point operations with two register
  79. operands where the source register is &lsquo;<samp>%st</samp>&rsquo; and the destination
  80. register is &lsquo;<samp>%st(i)</samp>&rsquo;.
  81. </p>
  82. </body>
  83. </html>