]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - ld/testsuite/ld-powerpc/tls.s
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / ld / testsuite / ld-powerpc / tls.s
1 .section ".tbss","awT",@nobits
2 .global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
3 .align 3
4 gd0: .space 8
5 ld0: .space 8
6 ld1: .space 8
7 ld2: .space 8
8 ie0: .space 8
9 le0: .space 8
10 le1: .space 8
11
12 .section ".tdata","awT",@progbits
13 .align 3
14 gd4: .quad 0x123456789abcdef0
15 ld4: .quad 0x23456789abcdef01
16 ld5: .quad 0x3456789abcdef012
17 ld6: .quad 0x456789abcdef0123
18 ie4: .quad 0x56789abcdef01234
19 le4: .quad 0x6789abcdef012345
20 le5: .quad 0x789abcdef0123456
21
22 .section ".opd","aw",@progbits
23 .p2align 3
24 _start:
25 .quad .L_start,.TOC.@tocbase,0
26
27 .text
28 .L_start:
29 #extern syms
30 #GD
31 addi 3,2,gd@got@tlsgd #R_PPC64_GOT_TLSGD16 gd
32 .ifdef TLSMARK
33 bl __tls_get_addr(gd@tlsgd) #R_PPC64_TLSGD gd
34 #R_PPC64_REL24 __tls_get_addr
35 .else
36 bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
37 .endif
38 nop
39
40 #LD
41 addi 3,2,ld@got@tlsld #R_PPC64_GOT_TLSLD16 ld
42 .ifdef TLSMARK
43 bl __tls_get_addr(ld@tlsld) #R_PPC64_TLSLD ld
44 #R_PPC64_REL24 __tls_get_addr
45 .else
46 bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
47 .endif
48 nop
49
50 #global syms
51 #GD
52 addi 3,2,gd0@got@tlsgd #R_PPC64_GOT_TLSGD16 gd0
53 .ifdef TLSMARK
54 bl __tls_get_addr(gd0@tlsgd) #R_PPC64_TLSGD gd0
55 #R_PPC64_REL24 __tls_get_addr
56 .else
57 bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
58 .endif
59 nop
60
61 #LD
62 addi 3,2,ld0@got@tlsld #R_PPC64_GOT_TLSLD16 ld0
63 .ifdef TLSMARK
64 bl __tls_get_addr(ld0@tlsld) #R_PPC64_TLSLD ld0
65 #R_PPC64_REL24 __tls_get_addr
66 .else
67 bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
68 .endif
69 nop
70
71 addi 9,3,ld0@dtprel #R_PPC64_DTPREL16 ld0
72
73 addis 9,3,ld1@dtprel@ha #R_PPC64_DTPREL16_HA ld1
74 lwz 10,ld1@dtprel@l(9) #R_PPC64_DTPREL16_LO ld1
75
76 ld 9,ld2@got@dtprel(2) #R_PPC64_GOT_DTPREL16_DS ld2
77 ldx 10,9,3
78
79 #IE
80 ld 9,ie0@got@tprel(2) #R_PPC64_GOT_TPREL16_DS ie0
81 lhzx 10,9,ie0@tls #R_PPC64_TLS ie0
82
83 #LE
84 lbz 10,le0@tprel(13) #R_PPC64_TPREL16 le0
85
86 addis 9,13,le1@tprel@ha #R_PPC64_TPREL16_HA le1
87 stb 10,le1@tprel@l(9) #R_PPC64_TPREL16_LO le1
88
89 #local syms
90 #GD
91 addi 3,2,gd4@got@tlsgd #R_PPC64_GOT_TLSGD16 gd4
92 .ifdef TLSMARK
93 bl __tls_get_addr(gd4@tlsgd) #R_PPC64_TLSGD gd4
94 #R_PPC64_REL24 __tls_get_addr
95 .else
96 bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
97 .endif
98 nop
99
100 #LD
101 addi 3,2,ld4@got@tlsld #R_PPC64_GOT_TLSLD16 ld4
102 .ifdef TLSMARK
103 bl __tls_get_addr(ld4@tlsld) #R_PPC64_TLSLD ld4
104 #R_PPC64_REL24 __tls_get_addr
105 .else
106 bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
107 .endif
108 nop
109
110 std 10,ld4@dtprel(3) #R_PPC64_DTPREL16_DS ld4
111
112 addis 9,3,ld5@dtprel@ha #R_PPC64_DTPREL16_HA ld5
113 stw 10,ld5@dtprel@l(9) #R_PPC64_DTPREL16_LO ld5
114
115 ld 9,ld6@got@dtprel(2) #R_PPC64_GOT_DTPREL16_DS ld6
116 stdx 10,9,3
117
118 #IE
119 ld 9,ie0@got@tprel(2) #R_PPC64_GOT_TPREL16_DS ie4
120 sthx 10,9,ie0@tls #R_PPC64_TLS ie4
121
122 #LE
123 lwa 10,le4@tprel(13) #R_PPC64_TPREL16 le4
124
125 addis 9,13,le5@tprel@ha #R_PPC64_TPREL16_HA le5
126 lha 10,le5@tprel@l(9) #R_PPC64_TPREL16_LO le5