From da4f43a4b4987f4b207b3ecee6bf67a9f5761c81 Mon Sep 17 00:00:00 2001 From: George Rimar Date: Tue, 20 Feb 2018 10:17:57 +0000 Subject: [llvm-mc] - Produce R_X86_64_PLT32 for "call/jmp foo". For instructions like call foo and jmp foo patch changes relocation produced from R_X86_64_PC32 to R_X86_64_PLT32. Relocation can be used as a marker for 32-bit PC-relative branches. Linker will reduce PLT32 relocation to PC32 if function is defined locally. Differential revision: https://reviews.llvm.org/D43383 llvm-svn: 325569 --- llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp') diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp index 4cdbae4d0d9..2ecbb80cd06 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp @@ -75,6 +75,9 @@ static X86_64RelType getType64(unsigned Kind, case X86::reloc_riprel_4byte_relax_rex: case X86::reloc_riprel_4byte_movq_load: return RT64_32; + case X86::reloc_branch_4byte_pcrel: + Modifier = MCSymbolRefExpr::VK_PLT; + return RT64_32; case FK_PCRel_2: case FK_Data_2: return RT64_16; -- cgit v1.2.3