[COFF] Add MIPS relocation types (#107814)
Add the MIPS COFF relocation types. They will be needed to add support for MIPS Windows object file. This is an extract of PR https://github.com/llvm/llvm-project/pull/107744.
This commit is contained in:
@@ -417,6 +417,24 @@ enum RelocationTypesARM64 : unsigned {
|
||||
IMAGE_REL_ARM64_REL32 = 0x0011,
|
||||
};
|
||||
|
||||
enum RelocationTypesMips : unsigned {
|
||||
IMAGE_REL_MIPS_ABSOLUTE = 0x0000,
|
||||
IMAGE_REL_MIPS_REFHALF = 0x0001,
|
||||
IMAGE_REL_MIPS_REFWORD = 0x0002,
|
||||
IMAGE_REL_MIPS_JMPADDR = 0x0003,
|
||||
IMAGE_REL_MIPS_REFHI = 0x0004,
|
||||
IMAGE_REL_MIPS_REFLO = 0x0005,
|
||||
IMAGE_REL_MIPS_GPREL = 0x0006,
|
||||
IMAGE_REL_MIPS_LITERAL = 0x0007,
|
||||
IMAGE_REL_MIPS_SECTION = 0x000A,
|
||||
IMAGE_REL_MIPS_SECREL = 0x000B,
|
||||
IMAGE_REL_MIPS_SECRELLO = 0x000C,
|
||||
IMAGE_REL_MIPS_SECRELHI = 0x000D,
|
||||
IMAGE_REL_MIPS_JMPADDR16 = 0x0010,
|
||||
IMAGE_REL_MIPS_REFWORDNB = 0x0022,
|
||||
IMAGE_REL_MIPS_PAIR = 0x0025,
|
||||
};
|
||||
|
||||
enum DynamicRelocationType : unsigned {
|
||||
IMAGE_DYNAMIC_RELOCATION_GUARD_RF_PROLOGUE = 1,
|
||||
IMAGE_DYNAMIC_RELOCATION_GUARD_RF_EPILOGUE = 2,
|
||||
|
||||
@@ -1465,6 +1465,27 @@ StringRef COFFObjectFile::getRelocationTypeName(uint16_t Type) const {
|
||||
return "Unknown";
|
||||
}
|
||||
break;
|
||||
case Triple::mipsel:
|
||||
switch (Type) {
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_ABSOLUTE);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_REFHALF);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_REFWORD);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_JMPADDR);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_REFHI);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_REFLO);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_GPREL);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_LITERAL);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_SECTION);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_SECREL);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_SECRELLO);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_SECRELHI);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_JMPADDR16);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_REFWORDNB);
|
||||
LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_MIPS_PAIR);
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user