summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-05-28 15:51:38 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-05-28 15:51:38 +0000
commit52bd330500339e9c176d1fec7c2733f34ac0aa85 (patch)
treed2eb804be1fbd94f88c9d8ce14cffdac1beec55d /llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
parentf49c7b157001dfd83f02e596c57577cfc0c08d17 (diff)
downloadbcm5719-llvm-52bd330500339e9c176d1fec7c2733f34ac0aa85.tar.gz
bcm5719-llvm-52bd330500339e9c176d1fec7c2733f34ac0aa85.zip
Fix production of R_X86_64_GOTPCRELX/R_X86_64_REX_GOTPCRELX.
We were producing R_X86_64_GOTPCRELX for invalid instructions and sometimes producing R_X86_64_GOTPCRELX instead of R_X86_64_REX_GOTPCRELX. llvm-svn: 271118
Diffstat (limited to 'llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp')
-rw-r--r--llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
index 6fa479e4d7e..e5084f90f98 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
@@ -68,6 +68,8 @@ static X86_64RelType getType64(unsigned Kind,
case FK_Data_4:
case FK_PCRel_4:
case X86::reloc_riprel_4byte:
+ case X86::reloc_riprel_4byte_relax:
+ case X86::reloc_riprel_4byte_relax_rex:
case X86::reloc_riprel_4byte_movq_load:
return RT64_32;
case FK_PCRel_2:
@@ -182,8 +184,9 @@ static unsigned getRelocType64(MCContext &Ctx, SMLoc Loc,
switch (Kind) {
default:
return ELF::R_X86_64_GOTPCREL;
- case X86::reloc_riprel_4byte:
+ case X86::reloc_riprel_4byte_relax:
return ELF::R_X86_64_GOTPCRELX;
+ case X86::reloc_riprel_4byte_relax_rex:
case X86::reloc_riprel_4byte_movq_load:
return ELF::R_X86_64_REX_GOTPCRELX;
}
OpenPOWER on IntegriCloud