Merge branch 'master' into merge-job
[deliverable/binutils-gdb.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
This page took 0.034146 seconds and 4 git commands to generate.