* ld-powerpc/tls.s (gd, ld): Set tls type for undefined syms.
[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         .type gd,@tls_object
23         .type ld,@tls_object
24
25         .text
26 _start:
27 #extern syms
28 #GD
29  addi 3,31,gd@got@tlsgd         #R_PPC_GOT_TLSGD16      gd
30  bl __tls_get_addr              #R_PPC_REL24            __tls_get_addr
31
32 #LD
33  addi 3,31,ld@got@tlsld         #R_PPC_GOT_TLSLD16      ld
34  bl __tls_get_addr              #R_PPC_REL24            __tls_get_addr
35
36 #global syms
37 #GD
38  addi 3,31,gd0@got@tlsgd        #R_PPC_GOT_TLSGD16      gd0
39  bl __tls_get_addr@plt          #R_PPC_PLTREL24         __tls_get_addr
40
41 #LD
42  addi 3,31,ld0@got@tlsld        #R_PPC_GOT_TLSLD16      ld0
43  bl __tls_get_addr@plt          #R_PPC_PLTREL24         __tls_get_addr
44
45  addi 9,3,ld0@dtprel            #R_PPC_DTPREL16         ld0
46
47  addis 9,3,ld1@dtprel@ha        #R_PPC_DTPREL16_HA      ld1
48  lwz 10,ld1@dtprel@l(9)         #R_PPC_DTPREL16_LO      ld1
49
50 #IE
51  lwz 9,ie0@got@tprel(31)        #R_PPC_GOT_TPREL16      ie0
52  lhzx 10,9,ie0@tls              #R_PPC_TLS              ie0
53
54 #LE
55  lbz 10,le0@tprel(2)            #R_PPC_TPREL16          le0
56
57  addis 9,2,le1@tprel@ha         #R_PPC_TPREL16_HA       le1
58  stb 10,le1@tprel@l(9)          #R_PPC_TPREL16_LO       le1
59
60 #local syms, use a different got reg too.
61 #GD
62  addi 3,30,gd4@got@tlsgd        #R_PPC_GOT_TLSGD16      gd4
63  bl __tls_get_addr              #R_PPC_REL24            __tls_get_addr
64
65 #LD
66  addi 3,30,ld4@got@tlsld        #R_PPC_GOT_TLSLD16      ld4
67  bl __tls_get_addr              #R_PPC_REL24            __tls_get_addr
68
69  stw 10,ld4@dtprel(3)           #R_PPC_DTPREL16 ld4
70
71  addis 9,3,ld5@dtprel@ha        #R_PPC_DTPREL16_HA      ld5
72  stw 10,ld5@dtprel@l(9)         #R_PPC_DTPREL16_LO      ld5
73
74 #IE
75  lwz 9,ie0@got@tprel(30)        #R_PPC_GOT_TPREL16      ie4
76  sthx 10,9,ie0@tls              #R_PPC_TLS              ie4
77
78 #LE
79  lhz 10,le4@tprel(2)            #R_PPC_TPREL16  le4
80
81  addis 9,2,le5@tprel@ha         #R_PPC_TPREL16_HA       le5
82  lha 10,le5@tprel@l(9)          #R_PPC_TPREL16_LO       le5
83