Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-powerpc / tls32.s
1         .section ".tbss","awT",@nobits
2         .global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
3         .align 2
4 gd0:    .space 4
5 ld0:    .space 4
6 ld1:    .space 4
7 ld2:    .space 4
8 ie0:    .space 4
9 le0:    .space 4
10 le1:    .space 4
11
12         .section ".tdata","awT",@progbits
13         .align 2
14 gd4:    .long 0x12345678
15 ld4:    .long 0x23456789
16 ld5:    .long 0x3456789a
17 ld6:    .long 0x456789ab
18 ie4:    .long 0x56789abc
19 le4:    .long 0x6789abcd
20 le5:    .long 0x789abcde
21
22         .text
23 _start:
24 #extern syms
25 #GD
26  addi 3,31,gd@got@tlsgd         #R_PPC_GOT_TLSGD16      gd
27  bl __tls_get_addr              #R_PPC_REL24            __tls_get_addr
28
29 #LD
30  addi 3,31,ld@got@tlsld         #R_PPC_GOT_TLSLD16      ld
31  bl __tls_get_addr              #R_PPC_REL24            __tls_get_addr
32
33 #global syms
34 #GD
35  addi 3,31,gd0@got@tlsgd        #R_PPC_GOT_TLSGD16      gd0
36  bl __tls_get_addr+0x8000@plt   #R_PPC_PLTREL24         __tls_get_addr
37
38 #LD
39  addi 3,31,ld0@got@tlsld        #R_PPC_GOT_TLSLD16      ld0
40  bl __tls_get_addr+0x8000@plt   #R_PPC_PLTREL24         __tls_get_addr
41
42  addi 9,3,ld0@dtprel            #R_PPC_DTPREL16         ld0
43
44  addis 9,3,ld1@dtprel@ha        #R_PPC_DTPREL16_HA      ld1
45  lwz 10,ld1@dtprel@l(9)         #R_PPC_DTPREL16_LO      ld1
46
47 #IE
48  lwz 9,ie0@got@tprel(31)        #R_PPC_GOT_TPREL16      ie0
49  lhzx 10,9,ie0@tls              #R_PPC_TLS              ie0
50
51 #LE
52  lbz 10,le0@tprel(2)            #R_PPC_TPREL16          le0
53
54  addis 9,2,le1@tprel@ha         #R_PPC_TPREL16_HA       le1
55  stb 10,le1@tprel@l(9)          #R_PPC_TPREL16_LO       le1
56
57 #local syms, use a different got reg too.
58 #GD
59  addi 3,30,gd4@got@tlsgd        #R_PPC_GOT_TLSGD16      gd4
60  bl __tls_get_addr              #R_PPC_REL24            __tls_get_addr
61
62 #LD
63  addi 3,30,ld4@got@tlsld        #R_PPC_GOT_TLSLD16      ld4
64  bl __tls_get_addr              #R_PPC_REL24            __tls_get_addr
65
66  stw 10,ld4@dtprel(3)           #R_PPC_DTPREL16 ld4
67
68  addis 9,3,ld5@dtprel@ha        #R_PPC_DTPREL16_HA      ld5
69  stw 10,ld5@dtprel@l(9)         #R_PPC_DTPREL16_LO      ld5
70
71 #IE
72  lwz 9,ie0@got@tprel(30)        #R_PPC_GOT_TPREL16      ie4
73  sthx 10,9,ie0@tls              #R_PPC_TLS              ie4
74
75 #LE
76  lhz 10,le4@tprel(2)            #R_PPC_TPREL16  le4
77
78  addis 9,2,le5@tprel@ha         #R_PPC_TPREL16_HA       le5
79  lha 10,le5@tprel@l(9)          #R_PPC_TPREL16_LO       le5
80