Skip to content

Commit 4a5ebc7

Browse files
authored
[BinaryFormat][LoongArch] Define psABI v2.30 relocs (#77039)
1 parent cf6e9c4 commit 4a5ebc7

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

llvm/include/llvm/BinaryFormat/ELFRelocs/LoongArch.def

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,3 +126,26 @@ ELF_RELOC(R_LARCH_64_PCREL, 109)
126126
//
127127
// Spec addition: https://github.com/loongson/la-abi-specs/pull/4
128128
ELF_RELOC(R_LARCH_CALL36, 110)
129+
130+
// Relocs added in ELF for the LoongArch™ Architecture v20231219, part of the
131+
// v2.30 LoongArch ABI specs.
132+
//
133+
// Spec addition: https://github.com/loongson/la-abi-specs/pull/5
134+
ELF_RELOC(R_LARCH_TLS_DESC32, 13)
135+
ELF_RELOC(R_LARCH_TLS_DESC64, 14)
136+
ELF_RELOC(R_LARCH_TLS_DESC_PC_HI20, 111)
137+
ELF_RELOC(R_LARCH_TLS_DESC_PC_LO12, 112)
138+
ELF_RELOC(R_LARCH_TLS_DESC64_PC_LO20, 113)
139+
ELF_RELOC(R_LARCH_TLS_DESC64_PC_HI12, 114)
140+
ELF_RELOC(R_LARCH_TLS_DESC_HI20, 115)
141+
ELF_RELOC(R_LARCH_TLS_DESC_LO12, 116)
142+
ELF_RELOC(R_LARCH_TLS_DESC64_LO20, 117)
143+
ELF_RELOC(R_LARCH_TLS_DESC64_HI12, 118)
144+
ELF_RELOC(R_LARCH_TLS_DESC_LD, 119)
145+
ELF_RELOC(R_LARCH_TLS_DESC_CALL, 120)
146+
ELF_RELOC(R_LARCH_TLS_LE_HI20_R, 121)
147+
ELF_RELOC(R_LARCH_TLS_LE_ADD_R, 122)
148+
ELF_RELOC(R_LARCH_TLS_LE_LO12_R, 123)
149+
ELF_RELOC(R_LARCH_TLS_LD_PCREL20_S2, 124)
150+
ELF_RELOC(R_LARCH_TLS_GD_PCREL20_S2, 125)
151+
ELF_RELOC(R_LARCH_TLS_DESC_PCREL20_S2, 126)

llvm/test/tools/llvm-readobj/ELF/reloc-types-loongarch64.test

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
# CHECK: Type: R_LARCH_TLS_TPREL32 (10)
1818
# CHECK: Type: R_LARCH_TLS_TPREL64 (11)
1919
# CHECK: Type: R_LARCH_IRELATIVE (12)
20+
# CHECK: Type: R_LARCH_TLS_DESC32 (13)
21+
# CHECK: Type: R_LARCH_TLS_DESC64 (14)
2022
# CHECK: Type: R_LARCH_MARK_LA (20)
2123
# CHECK: Type: R_LARCH_MARK_PCREL (21)
2224
# CHECK: Type: R_LARCH_SOP_PUSH_PCREL (22)
@@ -101,6 +103,22 @@
101103
# CHECK: Type: R_LARCH_SUB_ULEB128 (108)
102104
# CHECK: Type: R_LARCH_64_PCREL (109)
103105
# CHECK: Type: R_LARCH_CALL36 (110)
106+
# CHECK: Type: R_LARCH_TLS_DESC_PC_HI20 (111)
107+
# CHECK: Type: R_LARCH_TLS_DESC_PC_LO12 (112)
108+
# CHECK: Type: R_LARCH_TLS_DESC64_PC_LO20 (113)
109+
# CHECK: Type: R_LARCH_TLS_DESC64_PC_HI12 (114)
110+
# CHECK: Type: R_LARCH_TLS_DESC_HI20 (115)
111+
# CHECK: Type: R_LARCH_TLS_DESC_LO12 (116)
112+
# CHECK: Type: R_LARCH_TLS_DESC64_LO20 (117)
113+
# CHECK: Type: R_LARCH_TLS_DESC64_HI12 (118)
114+
# CHECK: Type: R_LARCH_TLS_DESC_LD (119)
115+
# CHECK: Type: R_LARCH_TLS_DESC_CALL (120)
116+
# CHECK: Type: R_LARCH_TLS_LE_HI20_R (121)
117+
# CHECK: Type: R_LARCH_TLS_LE_ADD_R (122)
118+
# CHECK: Type: R_LARCH_TLS_LE_LO12_R (123)
119+
# CHECK: Type: R_LARCH_TLS_LD_PCREL20_S2 (124)
120+
# CHECK: Type: R_LARCH_TLS_GD_PCREL20_S2 (125)
121+
# CHECK: Type: R_LARCH_TLS_DESC_PCREL20_S2 (126)
104122

105123
--- !ELF
106124
FileHeader:
@@ -125,6 +143,8 @@ Sections:
125143
- Type: R_LARCH_TLS_TPREL32
126144
- Type: R_LARCH_TLS_TPREL64
127145
- Type: R_LARCH_IRELATIVE
146+
- Type: R_LARCH_TLS_DESC32
147+
- Type: R_LARCH_TLS_DESC64
128148
- Type: R_LARCH_MARK_LA
129149
- Type: R_LARCH_MARK_PCREL
130150
- Type: R_LARCH_SOP_PUSH_PCREL
@@ -209,3 +229,19 @@ Sections:
209229
- Type: R_LARCH_SUB_ULEB128
210230
- Type: R_LARCH_64_PCREL
211231
- Type: R_LARCH_CALL36
232+
- Type: R_LARCH_TLS_DESC_PC_HI20
233+
- Type: R_LARCH_TLS_DESC_PC_LO12
234+
- Type: R_LARCH_TLS_DESC64_PC_LO20
235+
- Type: R_LARCH_TLS_DESC64_PC_HI12
236+
- Type: R_LARCH_TLS_DESC_HI20
237+
- Type: R_LARCH_TLS_DESC_LO12
238+
- Type: R_LARCH_TLS_DESC64_LO20
239+
- Type: R_LARCH_TLS_DESC64_HI12
240+
- Type: R_LARCH_TLS_DESC_LD
241+
- Type: R_LARCH_TLS_DESC_CALL
242+
- Type: R_LARCH_TLS_LE_HI20_R
243+
- Type: R_LARCH_TLS_LE_ADD_R
244+
- Type: R_LARCH_TLS_LE_LO12_R
245+
- Type: R_LARCH_TLS_LD_PCREL20_S2
246+
- Type: R_LARCH_TLS_GD_PCREL20_S2
247+
- Type: R_LARCH_TLS_DESC_PCREL20_S2

0 commit comments

Comments
 (0)