Skip to content

Commit 99a1e07

Browse files
committed
Modify loongarch-relax-tlsdesc.s.
1 parent 63a756b commit 99a1e07

File tree

1 file changed

+16
-29
lines changed

1 file changed

+16
-29
lines changed

Diff for: lld/test/ELF/loongarch-relax-tlsdesc.s

+16-29
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
# RUN: llvm-readobj -r -x .got a.64.so | FileCheck --check-prefix=GD64-RELA %s
1010
# RUN: llvm-objdump --no-show-raw-insn -dr -h a.64.so | FileCheck %s --check-prefix=GD64
1111

12-
## FIXME: IE/LE relaxation have not yet been implemented, --relax/--no-relax obtain the same results.
1312
## Transition from TLSDESC to IE/LE. Also check --emit-relocs.
1413
# RUN: ld.lld --relax -e 0 -z now --emit-relocs a.64.o c.64.o -o a.64.le
1514
# RUN: llvm-readobj -r -x .got a.64.le 2>&1 | FileCheck --check-prefix=LE64-RELA %s
@@ -73,25 +72,21 @@
7372
# LE64-RELA: could not find section '.got'
7473

7574
## a@tprel = 0x8
76-
# LE64: 20158: nop
75+
# LE64: 20158: ori $a0, $zero, 8
7776
# LE64-NEXT: R_LARCH_TLS_DESC_PC_HI20 a
7877
# LE64-NEXT: R_LARCH_RELAX *ABS*
79-
# LE64-NEXT: nop
8078
# LE64-NEXT: R_LARCH_TLS_DESC_PC_LO12 a
8179
# LE64-NEXT: R_LARCH_RELAX *ABS*
82-
# LE64-NEXT: nop
8380
# LE64-NEXT: R_LARCH_TLS_DESC_LD a
8481
# LE64-NEXT: R_LARCH_RELAX *ABS*
85-
# LE64-NEXT: ori $a0, $zero, 8
8682
# LE64-NEXT: R_LARCH_TLS_DESC_CALL a
8783
# LE64-NEXT: R_LARCH_RELAX *ABS*
8884
# LE64-NEXT: add.d $a1, $a0, $tp
8985

9086
## b@tprel = 0x7ff
91-
# LE64: 2016c: nop
87+
# LE64: 20160: nop
9288
# LE64-NEXT: R_LARCH_TLS_DESC_PC_HI20 b
9389
# LE64-NEXT: R_LARCH_RELAX *ABS*
94-
# LE64-NEXT: nop
9590
# LE64-NEXT: R_LARCH_TLS_DESC_PC_LO12 b
9691
# LE64-NEXT: nop
9792
# LE64-NEXT: R_LARCH_TLS_DESC_LD b
@@ -101,7 +96,7 @@
10196

10297
## c@tprel = 0x800
10398
## Without R_LARCH_RELAX relocation. No relaxation.
104-
# LE64: 20180: nop
99+
# LE64: 20170: nop
105100
# LE64-NEXT: R_LARCH_TLS_DESC_PC_HI20 c
106101
# LE64-NEXT: addi.d $t0, $zero, 0
107102
# LE64-NEXT: nop
@@ -115,13 +110,11 @@
115110
# LE64-NEXT: add.d $a3, $a0, $tp
116111

117112
## d@tprel = 0x1000
118-
# LE64: 201a0: nop
113+
# LE64: 20190: lu12i.w $a0, 1
119114
# LE64-NEXT: R_LARCH_TLS_DESC_PC_HI20 d
120115
# LE64-NEXT: R_LARCH_RELAX *ABS*
121-
# LE64-NEXT: nop
122116
# LE64-NEXT: R_LARCH_TLS_DESC_PC_LO12 d
123117
# LE64-NEXT: R_LARCH_RELAX *ABS*
124-
# LE64-NEXT: lu12i.w $a0, 1
125118
# LE64-NEXT: R_LARCH_TLS_DESC_LD d
126119
# LE64-NEXT: ori $a0, $a0, 0
127120
# LE64-NEXT: R_LARCH_TLS_DESC_CALL d
@@ -160,45 +153,41 @@
160153
# LE64-NORELAX-NEXT: add.d $a4, $a0, $tp
161154

162155
# IE64-RELA: .rela.dyn {
163-
# IE64-RELA-NEXT: 0x30408 R_LARCH_TLS_TPREL64 c 0x0
164-
# IE64-RELA-NEXT: 0x30410 R_LARCH_TLS_TPREL64 d 0x0
156+
# IE64-RELA-NEXT: 0x303F0 R_LARCH_TLS_TPREL64 c 0x0
157+
# IE64-RELA-NEXT: 0x303F8 R_LARCH_TLS_TPREL64 d 0x0
165158
# IE64-RELA-NEXT: }
166159
# IE64-RELA: Hex dump of section '.got':
167-
# IE64-RELA-NEXT: 0x00030408 00000000 00000000 00000000 00000000 .
160+
# IE64-RELA-NEXT: 0x000303f0 00000000 00000000 00000000 00000000 .
168161

169-
# IE64: .got 00000010 0000000000030408
162+
# IE64: .got 00000010 00000000000303f0
170163

171164
## a and b are optimized to use LE. c and d are optimized to IE.
172165
## a@tprel = 0x8
173-
# IE64: 202c8: nop
166+
# IE64: 202c8: ori $a0, $zero, 8
174167
# IE64-NEXT: R_LARCH_TLS_DESC_PC_HI20 a
175168
# IE64-NEXT: R_LARCH_RELAX *ABS*
176-
# IE64-NEXT: nop
177169
# IE64-NEXT: R_LARCH_TLS_DESC_PC_LO12 a
178170
# IE64-NEXT: R_LARCH_RELAX *ABS*
179-
# IE64-NEXT: nop
180171
# IE64-NEXT: R_LARCH_TLS_DESC_LD a
181172
# IE64-NEXT: R_LARCH_RELAX *ABS*
182-
# IE64-NEXT: ori $a0, $zero, 8
183173
# IE64-NEXT: R_LARCH_TLS_DESC_CALL a
184174
# IE64-NEXT: R_LARCH_RELAX *ABS*
185175
# IE64-NEXT: add.d $a1, $a0, $tp
186176

187177
## b@tprel = 0x7ff
188-
# IE64: 202dc: nop
178+
# IE64: 202d0: nop
189179
# IE64-NEXT: R_LARCH_TLS_DESC_PC_HI20 b
190180
# IE64-NEXT: R_LARCH_RELAX *ABS*
191-
# IE64-NEXT: nop
192181
# IE64-NEXT: R_LARCH_TLS_DESC_PC_LO12 b
193182
# IE64-NEXT: nop
194183
# IE64-NEXT: R_LARCH_TLS_DESC_LD b
195184
# IE64-NEXT: ori $a0, $zero, 2047
196185
# IE64-NEXT: R_LARCH_TLS_DESC_CALL b
197186
# IE64-NEXT: add.d $a2, $a0, $tp
198187

199-
## &.got[c]-. = 0x30408 - 0x20300: 0x10 pages, page offset 0x408
188+
## &.got[c]-. = 0x303f0 - 0x202f0: 0x10 pages, page offset 0x3f0
200189
## Without R_LARCH_RELAX relocation. No relaxation.
201-
# IE64: 202f0: nop
190+
# IE64: 202e0: nop
202191
# IE64-NEXT: R_LARCH_TLS_DESC_PC_HI20 c
203192
# IE64-NEXT: addi.d $t0, $zero, 0
204193
# IE64-NEXT: nop
@@ -207,20 +196,18 @@
207196
# IE64-NEXT: pcalau12i $a0, 16
208197
# IE64-NEXT: R_LARCH_TLS_DESC_LD c
209198
# IE64-NEXT: addi.d $t0, $t0, 1
210-
# IE64-NEXT: ld.d $a0, $a0, 1032
199+
# IE64-NEXT: ld.d $a0, $a0, 1008
211200
# IE64-NEXT: R_LARCH_TLS_DESC_CALL c
212201
# IE64-NEXT: add.d $a3, $a0, $tp
213202

214-
## &.got[d]-. = 0x30408+8 - 0x20318: 0x10 pages, page offset 0x410
215-
# IE64: 20310: nop
203+
## &.got[d]-. = 0x303f0+8 - 0x20300: 0x10 pages, page offset 0x3f8
204+
# IE64: 20300: pcalau12i $a0, 16
216205
# IE64-NEXT: R_LARCH_TLS_DESC_PC_HI20 d
217206
# IE64-NEXT: R_LARCH_RELAX *ABS*
218-
# IE64-NEXT: nop
219207
# IE64-NEXT: R_LARCH_TLS_DESC_PC_LO12 d
220208
# IE64-NEXT: R_LARCH_RELAX *ABS*
221-
# IE64-NEXT: pcalau12i $a0, 16
222209
# IE64-NEXT: R_LARCH_TLS_DESC_LD d
223-
# IE64-NEXT: ld.d $a0, $a0, 1040
210+
# IE64-NEXT: ld.d $a0, $a0, 1016
224211
# IE64-NEXT: R_LARCH_TLS_DESC_CALL d
225212
# IE64-NEXT: add.d $a4, $a0, $tp
226213

0 commit comments

Comments
 (0)