[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