[PowerPC64] pc-relative TLS relocations
[external/binutils.git] / ld / testsuite / ld-powerpc / tlsld.s
1  .section ".tbss","awT",@nobits
2  .p2align 3
3 pad: .space 8
4  .global a
5 a: .space 8
6  .global b
7 b: .space 8
8  .global c
9 c: .space 8
10  .global d
11 d: .space 8
12 z2: .space 8
13 z3: .space 8
14
15  .text
16  .globl _start
17 _start:
18 #Small model OpenPower
19  addi 3,2,.La@toc
20  bl __tls_get_addr(.La@tlsld)
21  nop
22  .section .toc,"aw",@progbits
23  .p2align 3
24 .La:
25  .quad a@dtpmod
26  .quad 0
27  .text
28
29 #Medium mode ELF
30  addis 3,2,b@got@tlsld@ha
31  addi 3,3,b@got@tlsld@l
32  bl __tls_get_addr(b@tlsld)
33  nop
34
35 #PCrel, with dtprel access to vars
36  pla 3,c@got@tlsld@pcrel
37  bl __tls_get_addr@notoc(c@tlsld)
38  paddi 9,3,z2@dtprel
39  pld 10,z3@got@dtprel@pcrel
40  add 10,10,3
41
42 #All of the above using the same symbol
43  addis 3,2,.Ld@toc@ha
44  addi 3,3,.Ld@toc@l
45  bl __tls_get_addr(.Ld@tlsld)
46  nop
47  .section .toc,"aw",@progbits
48  .p2align 3
49 .Ld:
50  .quad d@dtpmod
51  .quad 0
52  .text
53  addis 3,2,d@got@tlsld@ha
54  addi 3,3,d@got@tlsld@l
55  bl __tls_get_addr(d@tlsld)
56  nop
57  pla 3,d@got@tlsld@pcrel
58  bl __tls_get_addr@notoc(d@tlsld)