mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
MC: Support COFF image-relative MCSymbolRefs
Add support for the COFF relocation types IMAGE_REL_I386_DIR32NB and IMAGE_REL_AMD64_ADDR32NB for 32- and 64-bit respectively. These are similar to normal 4-byte relocations except that they do not include the base address of the image. Image-relative relocations are used for debug information (32-bit) and SEH unwind tables (64-bit). A new MCSymbolRef variant called 'VK_COFF_IMGREL32' is introduced to specify such relocations. For AT&T assembly, this variant can be accessed using the symbol suffix '@imgrel'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179240 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -250,6 +250,7 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
|
||||
case VK_Mips_GOT_LO16: return "GOT_LO16";
|
||||
case VK_Mips_CALL_HI16: return "CALL_HI16";
|
||||
case VK_Mips_CALL_LO16: return "CALL_LO16";
|
||||
case VK_COFF_IMGREL32: return "IMGREL32";
|
||||
}
|
||||
llvm_unreachable("Invalid variant kind");
|
||||
}
|
||||
@@ -285,6 +286,8 @@ MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
|
||||
.Case("dtpoff", VK_DTPOFF)
|
||||
.Case("TLVP", VK_TLVP)
|
||||
.Case("tlvp", VK_TLVP)
|
||||
.Case("IMGREL", VK_COFF_IMGREL32)
|
||||
.Case("imgrel", VK_COFF_IMGREL32)
|
||||
.Default(VK_Invalid);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user