Mnemonic-Attribute.html 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2017 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <title>GNU Compiler Collection (GCC) Internals: Mnemonic Attribute</title>
  20. <meta name="description" content="GNU Compiler Collection (GCC) Internals: Mnemonic Attribute">
  21. <meta name="keywords" content="GNU Compiler Collection (GCC) Internals: Mnemonic Attribute">
  22. <meta name="resource-type" content="document">
  23. <meta name="distribution" content="global">
  24. <meta name="Generator" content="makeinfo">
  25. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Insn-Attributes.html#Insn-Attributes" rel="up" title="Insn Attributes">
  30. <link href="Delay-Slots.html#Delay-Slots" rel="next" title="Delay Slots">
  31. <link href="Constant-Attributes.html#Constant-Attributes" rel="prev" title="Constant Attributes">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.smallquotation {font-size: smaller}
  36. div.display {margin-left: 3.2em}
  37. div.example {margin-left: 3.2em}
  38. div.indentedblock {margin-left: 3.2em}
  39. div.lisp {margin-left: 3.2em}
  40. div.smalldisplay {margin-left: 3.2em}
  41. div.smallexample {margin-left: 3.2em}
  42. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style:oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nocodebreak {white-space:nowrap}
  54. span.nolinebreak {white-space:nowrap}
  55. span.roman {font-family:serif; font-weight:normal}
  56. span.sansserif {font-family:sans-serif; font-weight:normal}
  57. ul.no-bullet {list-style: none}
  58. -->
  59. </style>
  60. </head>
  61. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  62. <a name="Mnemonic-Attribute"></a>
  63. <div class="header">
  64. <p>
  65. Next: <a href="Delay-Slots.html#Delay-Slots" accesskey="n" rel="next">Delay Slots</a>, Previous: <a href="Constant-Attributes.html#Constant-Attributes" accesskey="p" rel="prev">Constant Attributes</a>, Up: <a href="Insn-Attributes.html#Insn-Attributes" accesskey="u" rel="up">Insn Attributes</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  66. </div>
  67. <hr>
  68. <a name="Mnemonic-Attribute-1"></a>
  69. <h4 class="subsection">16.19.7 Mnemonic Attribute</h4>
  70. <a name="index-mnemonic-attribute"></a>
  71. <p>The <code>mnemonic</code> attribute is a string type attribute holding the
  72. instruction mnemonic for an insn alternative. The attribute values
  73. will automatically be generated by the machine description parser if
  74. there is an attribute definition in the md file:
  75. </p>
  76. <div class="smallexample">
  77. <pre class="smallexample">(define_attr &quot;mnemonic&quot; &quot;unknown&quot; (const_string &quot;unknown&quot;))
  78. </pre></div>
  79. <p>The default value can be freely chosen as long as it does not collide
  80. with any of the instruction mnemonics. This value will be used
  81. whenever the machine description parser is not able to determine the
  82. mnemonic string. This might be the case for output templates
  83. containing more than a single instruction as in
  84. <code>&quot;mvcle\t%0,%1,0\;jo\t.-4&quot;</code>.
  85. </p>
  86. <p>The <code>mnemonic</code> attribute set is not generated automatically if the
  87. instruction string is generated via C code.
  88. </p>
  89. <p>An existing <code>mnemonic</code> attribute set in an insn definition will not
  90. be overriden by the md file parser. That way it is possible to
  91. manually set the instruction mnemonics for the cases where the md file
  92. parser fails to determine it automatically.
  93. </p>
  94. <p>The <code>mnemonic</code> attribute is useful for dealing with instruction
  95. specific properties in the pipeline description without defining
  96. additional insn attributes.
  97. </p>
  98. <div class="smallexample">
  99. <pre class="smallexample">(define_attr &quot;ooo_expanded&quot; &quot;&quot;
  100. (cond [(eq_attr &quot;mnemonic&quot; &quot;dlr,dsgr,d,dsgf,stam,dsgfr,dlgr&quot;)
  101. (const_int 1)]
  102. (const_int 0)))
  103. </pre></div>
  104. </body>
  105. </html>