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.
| 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. |
| Insn Canonicalizations | Canonicalization of Instructions |
| Peephole Definitions | Defining machine-specific peephole optimizations. |
| Expander Definitions | Generating a sequence of several RTL insns for a standard operation. |
| Insn Splitting | Splitting Instructions into Multiple Instructions |
| Insn Attributes | Specifying the value of attributes for generated insns. |