mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-29 10:25:12 +00:00
[x86] Support R_386_PC8, R_386_PC16 and R_X86_64_PC8
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198763 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -57,6 +57,7 @@ unsigned X86ELFObjectWriter::GetRelocType(const MCValue &Target,
|
||||
case FK_Data_8: Type = ELF::R_X86_64_PC64; break;
|
||||
case FK_Data_4: Type = ELF::R_X86_64_PC32; break;
|
||||
case FK_Data_2: Type = ELF::R_X86_64_PC16; break;
|
||||
case FK_Data_1: Type = ELF::R_X86_64_PC8; break;
|
||||
|
||||
case FK_PCRel_8:
|
||||
assert(Modifier == MCSymbolRefExpr::VK_None);
|
||||
@@ -160,6 +161,28 @@ unsigned X86ELFObjectWriter::GetRelocType(const MCValue &Target,
|
||||
Type = ELF::R_386_GOTPC;
|
||||
break;
|
||||
|
||||
case FK_PCRel_1:
|
||||
case FK_Data_1:
|
||||
switch (Modifier) {
|
||||
default:
|
||||
llvm_unreachable("Unimplemented");
|
||||
case MCSymbolRefExpr::VK_None:
|
||||
Type = ELF::R_386_PC8;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case FK_PCRel_2:
|
||||
case FK_Data_2:
|
||||
switch (Modifier) {
|
||||
default:
|
||||
llvm_unreachable("Unimplemented");
|
||||
case MCSymbolRefExpr::VK_None:
|
||||
Type = ELF::R_386_PC16;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case X86::reloc_signed_4byte:
|
||||
case FK_PCRel_4:
|
||||
case FK_Data_4:
|
||||
|
Reference in New Issue
Block a user