[llvm] r272684 - [docs] Update AMDGPU relocation information

Konstantin Zhuravlyov via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 14 10:20:29 PDT 2016


Author: kzhuravl
Date: Tue Jun 14 12:20:29 2016
New Revision: 272684

URL: http://llvm.org/viewvc/llvm-project?rev=272684&view=rev
Log:
[docs] Update AMDGPU relocation information
  - Added new notation for specifying relocation calculation
  - Renamed:
    - R_AMDGPU_32_LOW -> R_AMDGPU_ABS32_LO
    - R_AMDGPU_32_HIGH -> R_AMDGPU_ABS32_HI
    - R_AMDGPU_64 -> R_AMDGPU_ABS64
  - Added:
    - R_AMDGPU_REL32
    - R_AMDGPU_REL64
    - R_AMDGPU_ABS32
  - Updated calculations for relative relocations

Differential Revision: http://reviews.llvm.org/D21215

Modified:
    llvm/trunk/docs/CodeGenerator.rst

Modified: llvm/trunk/docs/CodeGenerator.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/CodeGenerator.rst?rev=272684&r1=272683&r2=272684&view=diff
==============================================================================
--- llvm/trunk/docs/CodeGenerator.rst (original)
+++ llvm/trunk/docs/CodeGenerator.rst Tue Jun 14 12:20:29 2016
@@ -2672,25 +2672,26 @@ Supported relocatable fields are:
   byte alignment. These values use the same byte order as other word values in
   the AMD GPU architecture
 
-Following notations are used for specifying relocation types
+Following notations are used for specifying relocation calculations:
 
 * **A** --- Represents the addend used to compute the value of the relocatable
   field
+* **P** --- Represents the place (section offset or address) of the storage unit
+  being relocated (computed using ``r_offset``)
 * **S** --- Represents the value of the symbol whose index resides in the
   relocation entry
 
 AMDGPU Backend generates *Elf64_Rela* relocation records with the following
 supported relocation types:
 
-  ====================  =====  ==========  ============================
-  Relocation type       Value  Field       Calculation
-  ====================  =====  ==========  ============================
-  ``R_AMDGPU_NONE``     0      ``none``    ``none``
-  ``R_AMDGPU_32_LOW``   1      ``word32``  (S + A) & 0xFFFFFFFF
-  ``R_AMDGPU_32_HIGH``  2      ``word32``  ((S + A) >> 32) & 0xFFFFFFFF
-  ``R_AMDGPU_64``       3      ``word64``  S + A
-  ``R_AMDGPU_32``       4      ``word32``  S + A
-  ====================  =====  ==========  ============================
-
-Only R_AMDGPU_32_LOW and R_AMDGPU_32_HIGH can be handled by the
-dynamic linker.  The rest must be statically resolved.
+  =====================  =====  ==========  ====================
+  Relocation type        Value  Field       Calculation
+  =====================  =====  ==========  ====================
+  ``R_AMDGPU_NONE``      0      ``none``    ``none``
+  ``R_AMDGPU_ABS32_LO``  1      ``word32``  (S + A) & 0xFFFFFFFF
+  ``R_AMDGPU_ABS32_HI``  2      ``word32``  (S + A) >> 32
+  ``R_AMDGPU_ABS64``     3      ``word64``  S + A
+  ``R_AMDGPU_REL32``     4      ``word32``  S + A - P
+  ``R_AMDGPU_REL64``     5      ``word64``  S + A - P
+  ``R_AMDGPU_ABS32``     6      ``word32``  S + A
+  =====================  =====  ==========  ====================




More information about the llvm-commits mailing list