[llvm] 4a5ebc7 - [BinaryFormat][LoongArch] Define psABI v2.30 relocs (#77039)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 8 22:58:13 PST 2024


Author: Lu Weining
Date: 2024-01-09T14:58:09+08:00
New Revision: 4a5ebc7f6538dbebe9d671346de6138de657cb7d

URL: https://github.com/llvm/llvm-project/commit/4a5ebc7f6538dbebe9d671346de6138de657cb7d
DIFF: https://github.com/llvm/llvm-project/commit/4a5ebc7f6538dbebe9d671346de6138de657cb7d.diff

LOG: [BinaryFormat][LoongArch] Define psABI v2.30 relocs (#77039)

Added: 
    

Modified: 
    llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def
    llvm/test/tools/llvm-readobj/ELF/reloc-types-loongarch64.test

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def b/llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def
index df3a342151fb36..4859057abcbb92 100644
--- a/llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def
+++ b/llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def
@@ -126,3 +126,26 @@ ELF_RELOC(R_LARCH_64_PCREL,    109)
 //
 // Spec addition: https://github.com/loongson/la-abi-specs/pull/4
 ELF_RELOC(R_LARCH_CALL36, 110)
+
+// Relocs added in ELF for the LoongArchâ„¢ Architecture v20231219, part of the
+// v2.30 LoongArch ABI specs.
+//
+// Spec addition: https://github.com/loongson/la-abi-specs/pull/5
+ELF_RELOC(R_LARCH_TLS_DESC32,           13)
+ELF_RELOC(R_LARCH_TLS_DESC64,           14)
+ELF_RELOC(R_LARCH_TLS_DESC_PC_HI20,    111)
+ELF_RELOC(R_LARCH_TLS_DESC_PC_LO12,    112)
+ELF_RELOC(R_LARCH_TLS_DESC64_PC_LO20,  113)
+ELF_RELOC(R_LARCH_TLS_DESC64_PC_HI12,  114)
+ELF_RELOC(R_LARCH_TLS_DESC_HI20,       115)
+ELF_RELOC(R_LARCH_TLS_DESC_LO12,       116)
+ELF_RELOC(R_LARCH_TLS_DESC64_LO20,     117)
+ELF_RELOC(R_LARCH_TLS_DESC64_HI12,     118)
+ELF_RELOC(R_LARCH_TLS_DESC_LD,         119)
+ELF_RELOC(R_LARCH_TLS_DESC_CALL,       120)
+ELF_RELOC(R_LARCH_TLS_LE_HI20_R,       121)
+ELF_RELOC(R_LARCH_TLS_LE_ADD_R,        122)
+ELF_RELOC(R_LARCH_TLS_LE_LO12_R,       123)
+ELF_RELOC(R_LARCH_TLS_LD_PCREL20_S2,   124)
+ELF_RELOC(R_LARCH_TLS_GD_PCREL20_S2,   125)
+ELF_RELOC(R_LARCH_TLS_DESC_PCREL20_S2, 126)

diff  --git a/llvm/test/tools/llvm-readobj/ELF/reloc-types-loongarch64.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-loongarch64.test
index 55a3e645b883cb..26c4e8f5ca8463 100644
--- a/llvm/test/tools/llvm-readobj/ELF/reloc-types-loongarch64.test
+++ b/llvm/test/tools/llvm-readobj/ELF/reloc-types-loongarch64.test
@@ -17,6 +17,8 @@
 # CHECK: Type: R_LARCH_TLS_TPREL32 (10)
 # CHECK: Type: R_LARCH_TLS_TPREL64 (11)
 # CHECK: Type: R_LARCH_IRELATIVE (12)
+# CHECK: Type: R_LARCH_TLS_DESC32 (13)
+# CHECK: Type: R_LARCH_TLS_DESC64 (14)
 # CHECK: Type: R_LARCH_MARK_LA (20)
 # CHECK: Type: R_LARCH_MARK_PCREL (21)
 # CHECK: Type: R_LARCH_SOP_PUSH_PCREL (22)
@@ -101,6 +103,22 @@
 # CHECK: Type: R_LARCH_SUB_ULEB128 (108)
 # CHECK: Type: R_LARCH_64_PCREL (109)
 # CHECK: Type: R_LARCH_CALL36 (110)
+# CHECK: Type: R_LARCH_TLS_DESC_PC_HI20 (111)
+# CHECK: Type: R_LARCH_TLS_DESC_PC_LO12 (112)
+# CHECK: Type: R_LARCH_TLS_DESC64_PC_LO20 (113)
+# CHECK: Type: R_LARCH_TLS_DESC64_PC_HI12 (114)
+# CHECK: Type: R_LARCH_TLS_DESC_HI20 (115)
+# CHECK: Type: R_LARCH_TLS_DESC_LO12 (116)
+# CHECK: Type: R_LARCH_TLS_DESC64_LO20 (117)
+# CHECK: Type: R_LARCH_TLS_DESC64_HI12 (118)
+# CHECK: Type: R_LARCH_TLS_DESC_LD (119)
+# CHECK: Type: R_LARCH_TLS_DESC_CALL (120)
+# CHECK: Type: R_LARCH_TLS_LE_HI20_R (121)
+# CHECK: Type: R_LARCH_TLS_LE_ADD_R (122)
+# CHECK: Type: R_LARCH_TLS_LE_LO12_R (123)
+# CHECK: Type: R_LARCH_TLS_LD_PCREL20_S2 (124)
+# CHECK: Type: R_LARCH_TLS_GD_PCREL20_S2 (125)
+# CHECK: Type: R_LARCH_TLS_DESC_PCREL20_S2 (126)
 
 --- !ELF
 FileHeader:
@@ -125,6 +143,8 @@ Sections:
       - Type: R_LARCH_TLS_TPREL32
       - Type: R_LARCH_TLS_TPREL64
       - Type: R_LARCH_IRELATIVE
+      - Type: R_LARCH_TLS_DESC32
+      - Type: R_LARCH_TLS_DESC64
       - Type: R_LARCH_MARK_LA
       - Type: R_LARCH_MARK_PCREL
       - Type: R_LARCH_SOP_PUSH_PCREL
@@ -209,3 +229,19 @@ Sections:
       - Type: R_LARCH_SUB_ULEB128
       - Type: R_LARCH_64_PCREL
       - Type: R_LARCH_CALL36
+      - Type: R_LARCH_TLS_DESC_PC_HI20
+      - Type: R_LARCH_TLS_DESC_PC_LO12
+      - Type: R_LARCH_TLS_DESC64_PC_LO20
+      - Type: R_LARCH_TLS_DESC64_PC_HI12
+      - Type: R_LARCH_TLS_DESC_HI20
+      - Type: R_LARCH_TLS_DESC_LO12
+      - Type: R_LARCH_TLS_DESC64_LO20
+      - Type: R_LARCH_TLS_DESC64_HI12
+      - Type: R_LARCH_TLS_DESC_LD
+      - Type: R_LARCH_TLS_DESC_CALL
+      - Type: R_LARCH_TLS_LE_HI20_R
+      - Type: R_LARCH_TLS_LE_ADD_R
+      - Type: R_LARCH_TLS_LE_LO12_R
+      - Type: R_LARCH_TLS_LD_PCREL20_S2
+      - Type: R_LARCH_TLS_GD_PCREL20_S2
+      - Type: R_LARCH_TLS_DESC_PCREL20_S2


        


More information about the llvm-commits mailing list