PREV UP NEXT Using and Porting GNU CC

Chapter 15: 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.

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