Commit | Line | Data |
---|---|---|
c213164a AM |
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) |