Extending the ELF file format definition in LLVM
The ELF file format is one of the binary object file formats LLVM supports. ELF itself is defined for many CPU architectures, and there is also a definition for the M88k architecture. All we need to do is to add the definition of the relocations and some flags. The relocations are given in Chapter 4, Basics of IR Code Generation, of the System V ABI M88k Processor supplement book (see link within the Setting the stage for a new backend section at the beginning of the chapter):
- We need to type the following code into the
llvm/include/llvm/BinaryFormat/ELFRelocs/M88k.def
file:#ifndef ELF_RELOC #error "ELF_RELOC must be defined" #endif ELF_RELOC(R_88K_NONE, 0) ELF_RELOC(R_88K_COPY, 1) // Many more…
- We also add the following flags into the
llvm/include/llvm/BinaryFormat/ELF.h
file, along with the definition of the relocations:// M88k Specific e_flags enum : unsigned { EF_88K_NABI = 0x80000000...