aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-powerpc/tlstoc.s
blob: 268cb9f9977bda8c6e1b43d72a9fd199b0a4fc6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
	.section ".tbss","awT",@nobits
	.global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
	.align 3
gd0:	.space 8
ld0:	.space 8
ld1:	.space 8
ld2:	.space 8
ie0:	.space 8
le0:	.space 8
le1:	.space 8

	.section ".tdata","awT",@progbits
	.align 3
gd4:	.quad 0x123456789abcdef0
ld4:	.quad 0x23456789abcdef01
ld5:	.quad 0x3456789abcdef012
ld6:	.quad 0x456789abcdef0123
ie4:	.quad 0x56789abcdef01234
le4:	.quad 0x6789abcdef012345
le5:	.quad 0x789abcdef0123456

	.type gd,@tls_object
	.type ld,@tls_object

	.text
_start:
#extern syms
#GD
 addi 3,2,.Lgd@toc
 bl .__tls_get_addr
 nop
 .section .toc,"aw",@progbits
.Lgd:
 .quad gd@dtpmod
 .quad gd@dtprel
 .text
#LD
 addi 3,2,.Lld@toc
 bl .__tls_get_addr
 nop
 .section .toc,"aw",@progbits
.Lld:
 .quad ld@dtpmod
 .quad 0
 .text

#global syms
#GD
 addi 3,2,.Lgd0@toc
 bl .__tls_get_addr
 nop
 .section .toc,"aw",@progbits
.Lgd0:
 .quad gd0@dtpmod
 .quad gd0@dtprel
 .text
#LD
 addi 3,2,.Lld0@toc
 bl .__tls_get_addr
 nop
 .section .toc,"aw",@progbits
.Lld0:
 .quad ld0@dtpmod
 .quad 0
 .text

 addi 9,3,ld0@dtprel

 addis 9,3,ld1@dtprel@ha
 lwz 10,ld1@dtprel@l(9)

 ld 9,.Lld2@toc(2)
 ldx 10,9,3
 .section .toc,"aw",@progbits
.Lld2:
 .quad ld2@dtprel
 .text

#IE
 ld 9,.Lie0@toc(2)
 lhzx 10,9,.Lie0@tls
 .section .toc,"aw",@progbits
.Lie0:
 .quad ie0@tprel
 .text

#LE
 lbz 10,le0@tprel(13)		#R_PPC64_TPREL16	le0

 addis 9,13,le1@tprel@ha	#R_PPC64_TPREL16_HA	le1
 stb 10,le1@tprel@l(9)		#R_PPC64_TPREL16_LO	le1