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. |