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