mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-14 15:19:33 +00:00
Add base relative relocation record that can be used for the following case (OpenCL example):
static __global int Var = 0; __global int* Ptr[] = {&Var}; ... In this case Var is a non premptable symbol and so its address can be used as the value of Ptr, with a base relative relocation that will add the delta between the ELF address and the actual load address. Such relocations do not require a symbol. Differential Revision: https://reviews.llvm.org/D38909 llvm-svn: 315935
This commit is contained in:
parent
8b8004661c
commit
9d875a6ad4
@ -684,7 +684,12 @@ Following notations are used for specifying relocation calculations:
|
||||
|
||||
**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 @@ The following relocation types are supported:
|
||||
``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:
|
||||
|
@ -14,3 +14,4 @@ ELF_RELOC(R_AMDGPU_GOTPCREL32_LO, 8)
|
||||
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)
|
||||
|
@ -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 @@ Sections:
|
||||
- Offset: 0x22
|
||||
Symbol: s11
|
||||
Type: R_AMDGPU_REL32_HI
|
||||
- Offset: 0x24
|
||||
Symbol: s12
|
||||
Type: R_AMDGPU_RELATIVE64
|
||||
|
||||
Symbols:
|
||||
Local:
|
||||
|
Loading…
Reference in New Issue
Block a user