OSDN Git Service

[MC] [X86] Teach leaq _GLOBAL_OFFSET_TABLE(%rip), %r15 to use R_X86_64_GOTPC32 instea...
authorFangrui Song <maskray@google.com>
Tue, 12 Jun 2018 16:20:44 +0000 (16:20 +0000)
committerFangrui Song <maskray@google.com>
Tue, 12 Jun 2018 16:20:44 +0000 (16:20 +0000)
commit2307d55eeeac3ae5ed5e06dd86896c5946deb307
treea57d623ad6cdf1913dabd40be3ba41add2e23760
parentb6d28af2a582591ca291282dcf180d222065c88a
[MC] [X86] Teach leaq _GLOBAL_OFFSET_TABLE(%rip), %r15 to use R_X86_64_GOTPC32 instead of R_X86_64_PC32

Summary:
This is similar to D46319 (ARM). x86-64 psABI p40 gives an example:

  leaq _GLOBAL_OFFSET_TABLE(%rip), %r15 # GOTPC32 reloc

GNU as creates R_X86_64_GOTPC32. However, MC currently emits R_X86_64_PC32.

Reviewers: javed.absar, echristo

Subscribers: kristof.beyls, llvm-commits, peter.smith, grimar

Differential Revision: https://reviews.llvm.org/D47507

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334515 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
test/MC/ELF/relocation.s