diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-05-28 15:51:38 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-05-28 15:51:38 +0000 |
commit | 52bd330500339e9c176d1fec7c2733f34ac0aa85 (patch) | |
tree | d2eb804be1fbd94f88c9d8ce14cffdac1beec55d /llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp | |
parent | f49c7b157001dfd83f02e596c57577cfc0c08d17 (diff) | |
download | bcm5719-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/X86MachObjectWriter.cpp')
-rw-r--r-- | llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp index 191ebeac726..c098edec589 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp @@ -73,7 +73,9 @@ public: static bool isFixupKindRIPRel(unsigned Kind) { return Kind == X86::reloc_riprel_4byte || - Kind == X86::reloc_riprel_4byte_movq_load; + Kind == X86::reloc_riprel_4byte_movq_load || + Kind == X86::reloc_riprel_4byte_relax || + Kind == X86::reloc_riprel_4byte_relax_rex; } static unsigned getFixupKindLog2Size(unsigned Kind) { @@ -87,6 +89,8 @@ static unsigned getFixupKindLog2Size(unsigned Kind) { case FK_PCRel_4: // FIXME: Remove these!!! 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: case X86::reloc_signed_4byte: case FK_Data_4: return 2; |