1 .section ".tbss","awT",@nobits 2 .p2align 3 3pad: .space 8 4 .global a 5a: .space 8 6 .global b 7b: .space 8 8 .global c 9c: .space 8 10 .global d 11d: .space 8 12z2: .space 8 13z3: .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) 59