6.7 ld and MMIX

For MMIX, there is a choice of generating ELF object files or mmo object files when linking. The simulator mmix understands the mmo format. The binutils objcopy utility can translate between the two formats.

There is one special section, the ‘.MMIX.reg_contents’ section. Contents in this section is assumed to correspond to that of global registers, and symbols referring to it are translated to special symbols, equal to registers. In a final link, the start address of the ‘.MMIX.reg_contents’ section corresponds to the first allocated global register multiplied by 8. Register $255 is not included in this section; it is always set to the program entry, which is at the symbol Main for mmo files.

Global symbols with the prefix __.MMIX.start., for example __.MMIX.start..text and __.MMIX.start..data are special. The default linker script uses these to set the default start address of a section.

Initial and trailing multiples of zero-valued 32-bit words in a section, are left out from an mmo file.