A machine description has two parts: a file of instruction patterns (`.md' file) and a C header file of macro definitions.
The `.md' file for a target machine contains a pattern for each instruction that the target machine supports (or at least each instruction that is worth telling the compiler about). It may also contain comments. A semicolon causes the rest of the line to be a comment, unless the semicolon is inside a quoted string.
See the next chapter for information on the C header file.
|Overview||How the machine description is used.|
|Patterns||How to write instruction patterns.|
|Example||An explained example of a `define_insn' pattern.|
|RTL Template||The RTL template defines what insns match a pattern.|
|Output Template||The output template says how to make assembler code from such an insn.|
|Output Statement||For more generality, write C code to output the assembler code.|
|Constraints||When not all operands are general operands.|
|Standard Names||Names mark patterns to use for code generation.|
|Pattern Ordering||When the order of patterns makes a difference.|
|Dependent Patterns||Having one pattern may make you need another.|
|Jump Patterns||Special considerations for patterns for jump insns.|
|Looping Patterns||How to define patterns for special looping insns.|
|Insn Canonicalizations||Canonicalization of Instructions|
|Expander Definitions||Generating a sequence of several RTL insns for a standard operation.|
|Insn Splitting||Splitting Instructions into Multiple Instructions.|
|Including Patterns||Including Patterns in Machine Descriptions.|
|Peephole Definitions||Defining machine-specific peephole optimizations.|
|Insn Attributes||Specifying the value of attributes for generated insns.|
|Conditional Execution||Generating `define_insn' patterns for predication.|
|Constant Definitions||Defining symbolic constants that can be used in the md file.|