Upload Tizen:Base source
[external/binutils.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         .text
23 _start:
24 #extern syms
25 #GD
26  addi 3,2,gd@got@tlsgd          #R_PPC64_GOT_TLSGD16    gd
27  bl .__tls_get_addr             #R_PPC64_REL24          .__tls_get_addr
28  nop
29
30 #LD
31  addi 3,2,ld@got@tlsld          #R_PPC64_GOT_TLSLD16    ld
32  bl .__tls_get_addr             #R_PPC64_REL24          .__tls_get_addr
33  nop
34
35 #global syms
36 #GD
37  addi 3,2,gd0@got@tlsgd         #R_PPC64_GOT_TLSGD16    gd0
38  bl .__tls_get_addr             #R_PPC64_REL24          .__tls_get_addr
39  nop
40
41 #LD
42  addi 3,2,ld0@got@tlsld         #R_PPC64_GOT_TLSLD16    ld0
43  bl .__tls_get_addr             #R_PPC64_REL24          .__tls_get_addr
44  nop
45
46  addi 9,3,ld0@dtprel            #R_PPC64_DTPREL16       ld0
47
48  addis 9,3,ld1@dtprel@ha        #R_PPC64_DTPREL16_HA    ld1
49  lwz 10,ld1@dtprel@l(9)         #R_PPC64_DTPREL16_LO    ld1
50
51  ld 9,ld2@got@dtprel(2)         #R_PPC64_GOT_DTPREL16_DS ld2
52  ldx 10,9,3
53
54 #IE
55  ld 9,ie0@got@tprel(2)          #R_PPC64_GOT_TPREL16_DS ie0
56  lhzx 10,9,ie0@tls              #R_PPC64_TLS            ie0
57
58 #LE
59  lbz 10,le0@tprel(13)           #R_PPC64_TPREL16        le0
60
61  addis 9,13,le1@tprel@ha        #R_PPC64_TPREL16_HA     le1
62  stb 10,le1@tprel@l(9)          #R_PPC64_TPREL16_LO     le1
63
64 #local syms
65 #GD
66  addi 3,2,gd4@got@tlsgd         #R_PPC64_GOT_TLSGD16    gd4
67  bl .__tls_get_addr             #R_PPC64_REL24          .__tls_get_addr
68  nop
69
70 #LD
71  addi 3,2,ld4@got@tlsld         #R_PPC64_GOT_TLSLD16    ld4
72  bl .__tls_get_addr             #R_PPC64_REL24          .__tls_get_addr
73  nop
74
75  std 10,ld4@dtprel(3)           #R_PPC64_DTPREL16_DS    ld4
76
77  addis 9,3,ld5@dtprel@ha        #R_PPC64_DTPREL16_HA    ld5
78  stw 10,ld5@dtprel@l(9)         #R_PPC64_DTPREL16_LO    ld5
79
80  ld 9,ld6@got@dtprel(2)         #R_PPC64_GOT_DTPREL16_DS ld6
81  stdx 10,9,3
82
83 #IE
84  ld 9,ie0@got@tprel(2)          #R_PPC64_GOT_TPREL16_DS ie4
85  sthx 10,9,ie0@tls              #R_PPC64_TLS            ie4
86
87 #LE
88  lwa 10,le4@tprel(13)           #R_PPC64_TPREL16        le4
89
90  addis 9,13,le5@tprel@ha        #R_PPC64_TPREL16_HA     le5
91  lha 10,le5@tprel@l(9)          #R_PPC64_TPREL16_LO     le5
92