Hi, add missing documentation for the mnemonic attribute.
Ok? Bye, -Andreas- 2013-05-24 Andreas Krebbel <andreas.kreb...@de.ibm.com> * doc/md.texi: Document the mnemonic attribute. --- gcc/doc/md.texi | 67 +++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!! 1 file changed, 47 insertions(+), 20 modifications(!) Index: gcc/doc/md.texi =================================================================== *** gcc/doc/md.texi.orig --- gcc/doc/md.texi *************** to track the condition codes. *** 7609,7614 **** --- 7609,7615 ---- * Attr Example:: An example of assigning attributes. * Insn Lengths:: Computing the length of insns. * Constant Attributes:: Defining attributes that are constant. + * Mnemonic Attribute:: Obtain the instruction mnemonic as attribute value. * Delay Slots:: Defining delay slots required for a machine. * Processor pipeline description:: Specifying information for insn scheduling. @end menu *************** by the target machine. It looks like: *** 7628,7642 **** (define_attr @var{name} @var{list-of-values} @var{default}) @end smallexample ! @var{name} is a string specifying the name of the attribute being defined. ! Some attributes are used in a special way by the rest of the compiler. The ! @code{enabled} attribute can be used to conditionally enable or disable ! insn alternatives (@pxref{Disable Insn Alternatives}). The @code{predicable} ! attribute, together with a suitable @code{define_cond_exec} ! (@pxref{Conditional Execution}), can be used to automatically generate ! conditional variants of instruction patterns. The compiler internally uses ! the names @code{ce_enabled} and @code{nonce_enabled}, so they should not be ! used elsewhere as alternative names. @var{list-of-values} is either a string that specifies a comma-separated list of values that can be assigned to the attribute, or a null string to --- 7629,7645 ---- (define_attr @var{name} @var{list-of-values} @var{default}) @end smallexample ! @var{name} is a string specifying the name of the attribute being ! defined. Some attributes are used in a special way by the rest of the ! compiler. The @code{enabled} attribute can be used to conditionally ! enable or disable insn alternatives (@pxref{Disable Insn ! Alternatives}). The @code{predicable} attribute, together with a ! suitable @code{define_cond_exec} (@pxref{Conditional Execution}), can ! be used to automatically generate conditional variants of instruction ! patterns. The @code{mnemonic} attribute can be used to check for the ! instruction mnemonic (@pxref{Mnemonic Attribute}). The compiler ! internally uses the names @code{ce_enabled} and @code{nonce_enabled}, ! so they should not be used elsewhere as alternative names. @var{list-of-values} is either a string that specifies a comma-separated list of values that can be assigned to the attribute, or a null string to *************** distances. @xref{Insn Lengths}. *** 7700,7705 **** --- 7703,7713 ---- The @code{enabled} attribute can be defined to prevent certain alternatives of an insn definition from being used during code generation. @xref{Disable Insn Alternatives}. + + @item mnemonic + The @code{mnemonic} attribute can be defined to implement instruction + specific checks in e.g. the pipleline description. + @xref{Mnemonic Attribute}. @end table For each of these special attributes, the corresponding *************** forms involving insn attributes. *** 8252,8257 **** --- 8260,8306 ---- @end ifset @ifset INTERNALS + @node Mnemonic Attribute + @subsection Mnemonic Attribute + @cindex mnemonic attribute + + The @code{mnemonic} 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: + + @smallexample + (define_attr "mnemonic" "unknown" (const_string "unknown")) + @end smallexample + + 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{"mvcle\t%0,%1,0\;jo\t.-4"}. + + The @code{mnemonic} attribute set is not generated automatically if the + instruction string is generated via C code. + + An existing @code{mnemonic} 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. + + The @code{mnemonic} attribute is useful for dealing with instruction + specific properties in the pipeline description without defining + additional insn attributes. + + @smallexample + (define_attr "ooo_expanded" "" + (cond [(eq_attr "mnemonic" "dlr,dsgr,d,dsgf,stam,dsgfr,dlgr") + (const_int 1)] + (const_int 0))) + @end smallexample + + @end ifset + @ifset INTERNALS @node Delay Slots @subsection Delay Slot Scheduling @cindex delay slots, defining