[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