toolchain/gcc-linaro-6.3.1-2017.02-x8.../share/doc/gccint/Mnemonic-Attribute.html

121 lines
5.2 KiB
HTML
Raw Normal View History

2024-03-22 05:10:17 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below). A copy of the license is included in the section entitled
"GNU Free Documentation License".
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Compiler Collection (GCC) Internals: Mnemonic Attribute</title>
<meta name="description" content="GNU Compiler Collection (GCC) Internals: Mnemonic Attribute">
<meta name="keywords" content="GNU Compiler Collection (GCC) Internals: Mnemonic Attribute">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Insn-Attributes.html#Insn-Attributes" rel="up" title="Insn Attributes">
<link href="Delay-Slots.html#Delay-Slots" rel="next" title="Delay Slots">
<link href="Constant-Attributes.html#Constant-Attributes" rel="prev" title="Constant Attributes">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Mnemonic-Attribute"></a>
<div class="header">
<p>
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>
</div>
<hr>
<a name="Mnemonic-Attribute-1"></a>
<h4 class="subsection">16.19.7 Mnemonic Attribute</h4>
<a name="index-mnemonic-attribute"></a>
<p>The <code>mnemonic</code> attribute is a string type attribute holding the
instruction mnemonic for an insn alternative. The attribute values
will automatically be generated by the machine description parser if
there is an attribute definition in the md file:
</p>
<div class="smallexample">
<pre class="smallexample">(define_attr &quot;mnemonic&quot; &quot;unknown&quot; (const_string &quot;unknown&quot;))
</pre></div>
<p>The default value can be freely chosen as long as it does not collide
with any of the instruction mnemonics. This value will be used
whenever the machine description parser is not able to determine the
mnemonic string. This might be the case for output templates
containing more than a single instruction as in
<code>&quot;mvcle\t%0,%1,0\;jo\t.-4&quot;</code>.
</p>
<p>The <code>mnemonic</code> attribute set is not generated automatically if the
instruction string is generated via C code.
</p>
<p>An existing <code>mnemonic</code> attribute set in an insn definition will not
be overriden by the md file parser. That way it is possible to
manually set the instruction mnemonics for the cases where the md file
parser fails to determine it automatically.
</p>
<p>The <code>mnemonic</code> attribute is useful for dealing with instruction
specific properties in the pipeline description without defining
additional insn attributes.
</p>
<div class="smallexample">
<pre class="smallexample">(define_attr &quot;ooo_expanded&quot; &quot;&quot;
(cond [(eq_attr &quot;mnemonic&quot; &quot;dlr,dsgr,d,dsgf,stam,dsgfr,dlgr&quot;)
(const_int 1)]
(const_int 0)))
</pre></div>
</body>
</html>