Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-arm / tls-descrelax.s
1 @ we can relax local and non-weak globals for non-shared links
2
3         .text
4         .arm
5
6         .p2align 2
7 foo:
8 @tlscall global, manually relaxed to IE
9         ldr     r0, 1f
10 2:      ldr     r0, [pc, r0]
11         nop
12         .p2align 2
13 1:      .word   gd1(gottpoff) + (. - 2b - 8)
14         
15         .p2align 2
16 @tlscall global, should relax to IE
17         ldr     r0, 1f
18 2:      blx     gd1(tlscall)
19         nop
20         .p2align 2
21 1:      .word   gd1(tlsdesc) + (. - 2b)
22
23         .p2align 2
24 @tlscall local, manually relaxed to LE
25         ldr     r0, 1f
26         nop
27         nop
28         .p2align 2
29 1:      .word   ld1(tpoff)
30
31         .p2align 2
32 @tlscall local, should relax to LE
33         ldr     r0, 1f
34 2:      blx     ld1(tlscall)
35         nop
36         .p2align 2
37 1:      .word   ld1(tlsdesc) + (. - 2b)
38
39         .p2align 2
40 @open coded global, manually relaxed to IE
41         ldr     r0, 1f
42 2:
43         add     r0, pc, r0
44         ldr     r1, [r0]
45         mov     r0, r1
46         nop
47         .p2align 2
48 1:      .word   gd1(gottpoff) + (. - 2b - 8)
49
50         .p2align 2
51 @open coded global, should relax to IE
52         ldr     r0, 1f
53 2:
54 .tlsdescseq gd1
55         add     r0, pc, r0
56 .tlsdescseq gd1
57         ldr     r1, [r0,#4]
58 .tlsdescseq gd1
59         blx     r1
60         nop
61         .p2align 2
62 1:      .word   gd1(tlsdesc) + (. - 2b)
63
64         .p2align 2
65 @open coded local, manually relaxed to LE
66         ldr     r0, 1f
67 2:
68         nop
69         nop
70         nop
71         nop
72         .p2align 2
73 1:      .word   ld1(tpoff)
74         
75         .p2align 2
76 @open coded local, should relax to LE
77         ldr     r0, 1f
78 2:
79 .tlsdescseq ld1
80         add     r0, pc, r0
81 .tlsdescseq ld1
82         ldr     r1, [r0,#4]
83 .tlsdescseq ld1
84         blx     r1
85         nop
86         .p2align 2
87 1:      .word   ld1(tlsdesc) + (. - 2b)
88
89
90         .thumb
91         .p2align 1
92 bar:    
93 @tlscall global, manually relaxed to IE
94         ldr     r0, 1f
95 2:      add     r0, pc, r0
96         ldr     r0, [r0]
97         nop
98         .p2align 2
99 1:      .word   gd1(gottpoff) + (. - 2b - 4)
100         
101         .p2align 1
102 @tlscall global, should relax to IE
103         ldr     r0, 1f
104 2:      blx     gd1(tlscall)
105         nop
106         .p2align 2
107 1:      .word   gd1(tlsdesc) + (. - 2b + 1)
108
109         .p2align 1
110 @tlscall global, should relax to IE
111         ldr     r0, 1f
112 2:      blx     r1(tlscall)
113         nop
114         .p2align 2
115 1:      .word   r1(tlsdesc) + (. - 2b + 1)
116
117         .p2align 1
118 @tlscall local, manually relaxed to LE
119         ldr     r0, 1f
120         nop
121         nop
122         .p2align 2
123 1:      .word   ld1(tpoff)
124
125         .p2align 1
126 @tlscall local, should relax to LE
127         ldr     r0, 1f
128 2:      blx     ld1(tlscall)
129         nop
130         .p2align 2
131 1:      .word   ld1(tlsdesc) + (. - 2b + 1)
132
133         .p2align 1
134 @tlscall local, should relax to LE
135         ldr     r0, 1f
136 2:      blx     r0(tlscall)
137         nop
138         .p2align 2
139 1:      .word   r0(tlsdesc) + (. - 2b + 1)
140
141         .p2align 1
142 @open coded global, manually relaxed to IE
143         ldr     r0, 1f
144 2:
145         add     r0, pc
146         ldr     r1, [r0]
147         mov     r0, r1
148         nop
149         .p2align 2
150 1:      .word   gd1(gottpoff) + (. - 2b - 4)
151
152         .p2align 1
153 @open coded global, should relax to IE
154         ldr     r0, 1f
155 2:
156 .tlsdescseq gd1
157         add     r0, pc
158 .tlsdescseq gd1
159         ldr     r1, [r0,#4]
160 .tlsdescseq gd1
161         blx     r1
162         nop
163         .p2align 2
164 1:      .word   gd1(tlsdesc) + (. - 2b + 1)
165
166         .p2align 1
167 @open coded local, manually relaxed to LE
168         ldr     r0, 1f
169 2:
170         nop
171         nop
172         nop
173         nop
174         .p2align 2
175 1:      .word   ld1(tpoff)
176         
177         .p2align 1
178 @open coded local, should relax to LE
179         ldr     r0, 1f
180 2:
181 .tlsdescseq ld1
182         add     r0, pc
183 .tlsdescseq ld1
184         ldr     r1, [r0,#4]
185 .tlsdescseq ld1
186         blx     r1
187         nop
188         .p2align 2
189 1:      .word   ld1(tlsdesc) + (. - 2b + 1)
190
191         .section .tdata,"awT"
192         .global gd1
193 gd1:    .space 4
194 ld1:    .space 4
195         .globl r1
196 r1:     .space 4
197 r0:     .space 4