Go forward to Target Macros.
Go backward to RTL.
Go up to Top.
Machine Descriptions
********************
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.
Menu
- 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.