PREV UP NEXT Using and Porting GNU CC

Chapter 16: Target Description Macros

In addition to the file `machine.md', a machine description includes a C header file conventionally given the name `machine.h'. This header file defines numerous macros that convey the information about the target machine that does not fit into the scheme of the `.md' file. The file `tm.h' should be a link to `machine.h'. The header file `config.h' includes `tm.h' and most compiler source files include `config.h'.

  • Driver Controlling how the driver runs the compilation passes.
  • Run-time Target Defining `-m' options like `-m68000' and `-m68020'.
  • Storage Layout Defining sizes and alignments of data.
  • Type Layout Defining sizes and properties of basic user data types.
  • Registers Naming and describing the hardware registers.
  • Register Classes Defining the classes of hardware registers.
  • Stack and Calling Defining which way the stack grows and by how much.
  • Varargs Defining the varargs macros.
  • Trampolines Code set up at run time to enter a nested function.
  • Library Calls Controlling how library routines are implicitly called.
  • Addressing Modes Defining addressing modes valid for memory operands.
  • Condition Code Defining how insns update the condition code.
  • Costs Defining relative costs of different operations.
  • Sections Dividing storage into text, data, and other sections.
  • PIC Macros for position independent code.
  • Assembler Format Defining how to write insns and pseudo-ops to output.
  • Debugging Info Defining the format of debugging output.
  • Cross-compilation Handling floating point for cross-compilers.
  • Misc Everything else.