[PATCH] D38909: [AMDGPU] Add RELATIVE64 relocation record.
Tony Tye via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 16 13:44:46 PDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL315935: Add base relative relocation record that can be used for the following caseā¦ (authored by t-tye).
Changed prior to commit:
https://reviews.llvm.org/D38909?vs=118985&id=119204#toc
Repository:
rL LLVM
https://reviews.llvm.org/D38909
Files:
llvm/trunk/docs/AMDGPUUsage.rst
llvm/trunk/include/llvm/BinaryFormat/ELFRelocs/AMDGPU.def
llvm/trunk/test/Object/AMDGPU/elf64-relocs.yaml
Index: llvm/trunk/docs/AMDGPUUsage.rst
===================================================================
--- llvm/trunk/docs/AMDGPUUsage.rst
+++ llvm/trunk/docs/AMDGPUUsage.rst
@@ -684,7 +684,12 @@
**S**
Represents the value of the symbol whose index resides in the relocation
- entry.
+ entry. Relocations not using this must specify a symbol index of ``STN_UNDEF``.
+
+**B**
+ Represents the base address of a loaded executable or shared object which is
+ the difference between the ELF address and the actual load address. Relocations
+ using this are only valid in executable or shared objects.
The following relocation types are supported:
@@ -706,6 +711,8 @@
``R_AMDGPU_GOTPCREL32_HI`` 9 ``word32`` (G + GOT + A - P) >> 32
``R_AMDGPU_REL32_LO`` 10 ``word32`` (S + A - P) & 0xFFFFFFFF
``R_AMDGPU_REL32_HI`` 11 ``word32`` (S + A - P) >> 32
+ *reserved* 12
+ ``R_AMDGPU_RELATIVE64`` 13 ``word64`` B + A
========================== ===== ========== ==============================
.. _amdgpu-dwarf:
Index: llvm/trunk/include/llvm/BinaryFormat/ELFRelocs/AMDGPU.def
===================================================================
--- llvm/trunk/include/llvm/BinaryFormat/ELFRelocs/AMDGPU.def
+++ llvm/trunk/include/llvm/BinaryFormat/ELFRelocs/AMDGPU.def
@@ -14,3 +14,4 @@
ELF_RELOC(R_AMDGPU_GOTPCREL32_HI, 9)
ELF_RELOC(R_AMDGPU_REL32_LO, 10)
ELF_RELOC(R_AMDGPU_REL32_HI, 11)
+ELF_RELOC(R_AMDGPU_RELATIVE64, 13)
Index: llvm/trunk/test/Object/AMDGPU/elf64-relocs.yaml
===================================================================
--- llvm/trunk/test/Object/AMDGPU/elf64-relocs.yaml
+++ llvm/trunk/test/Object/AMDGPU/elf64-relocs.yaml
@@ -15,6 +15,7 @@
# CHECK: 0x18 R_AMDGPU_GOTPCREL32_HI - 0x0
# CHECK: 0x20 R_AMDGPU_REL32_LO - 0x0
# CHECK: 0x22 R_AMDGPU_REL32_HI - 0x0
+# CHECK: 0x24 R_AMDGPU_RELATIVE64 - 0x0
# CHECK: }
# CHECK: ]
@@ -72,6 +73,9 @@
- Offset: 0x22
Symbol: s11
Type: R_AMDGPU_REL32_HI
+ - Offset: 0x24
+ Symbol: s12
+ Type: R_AMDGPU_RELATIVE64
Symbols:
Local:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38909.119204.patch
Type: text/x-patch
Size: 2262 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171016/06794973/attachment.bin>
More information about the llvm-commits
mailing list