Remove sh-symbianelf support
[deliverable/binutils-gdb.git] / ld / testsuite / ld-sh / sh64 / shdl-1.s
CommitLineData
1b19eb81
AO
1! Test inter-file DataLabel support.
2!
3! We need to test symbols that are:
4! * Global, defined in this file, with/without/both-with-without datalabel
5! references.
6! * The above in combinations where the reference is/is not from within
7! the same section. The implementation is currently indifferent to that
8! fact, but it seems likely to be something that can change.
9! * Extern with/without/both-with-without datalabel-qualified references.
10! * The above with reference from same *and* other file.
11! * The above in combinations for where the symbol is/is not a
12! STO_SH5_ISA32-marked symbol.
13
14! There will be omissions and overlap in combinations. Add spotted
15! omissions with complementary tests in other files.
16
17 .text
18 .mode SHmedia
19
20! For good measure, we start with a nop to get a non-zero offset within
21! the .text section.
22
23 .global start
24start:
25 nop
26
27! Referenced from the same file, same section, is ISA32, only referenced
28! with datalabel qualifier.
29 .global foo
30foo:
31 nop
32 movi (datalabel foo + 8) & 65535,r30
33
34! Referenced from same file, same section, both with and without
35! datalabel qualifier, is ISA32.
36 .global fooboth
37fooboth:
38 nop
39 movi (datalabel fooboth + 16) & 65535,r40
40 movi (fooboth + 12) & 65535,r40
41
42! Same as above, but in different order.
43 .global fooboth2
44fooboth2:
45 nop
46 movi (fooboth2 + 12) & 65535,r40
47 movi (datalabel fooboth2 + 16) & 65535,r40
48
49! Referenced from this file and another, same section, is ISA32.
50 .global foowithout
51foowithout:
52 nop
53 movi (foowithout + 24) & 65535,r30
54
55! Same as above, different section than definition.
56
57 .global foo_other
58foo_other:
59 nop
60 .global foo_otherboth
61foo_otherboth:
62 nop
63 .global foo_otherboth2
64foo_otherboth2:
65 nop
66 .global foo_otherwithout
67foo_otherwithout:
68 nop
69
70 .section .rodata
71 .long datalabel foo_other + 4
72 .long datalabel foo_otherboth + 40
73 .long foo_otherboth + 24
74 .long foo_otherboth2 + 24
75 .long datalabel foo_otherboth2 + 40
76 .long foo_otherwithout
77
78 .text
79
80! Same as above, mixing references from same and other section.
81 .global foo_mix
82foo_mix:
83 nop
84 movi (datalabel foo_mix + 8) & 65535,r30
85 .global foo_mix2
86foo_mix2:
87 nop
88 movi (foo_mix2 + 8) & 65535,r30
89 .global foo_mixboth
90foo_mixboth:
91 nop
92 movi (datalabel foo_mixboth + 80) & 65535,r30
93 movi (foo_mixboth + 80) & 65535,r30
94 .global foo_mixboth2
95foo_mixboth2:
96 nop
97 movi (foo_mixboth2 + 64) & 65535,r30
98 movi (datalabel foo_mixboth2 + 64) & 65535,r30
99 .global foo_mixwithout
100foo_mixwithout:
101 nop
102 movi (foo_mixwithout + 42) & 65535,r30
103 .global foo_mixwithout2
104foo_mixwithout2:
105 nop
106 movi (foo_mixwithout2 + 24) & 65535,r30
107
108 .section .rodata
109 .long foo_mix + 4
110 .long datalabel foo_mix2 + 48
111 .long datalabel foo_mixboth + 400
112 .long foo_mixboth + 420
113 .long foo_mixboth2 + 248
114 .long datalabel foo_mixboth2 + 240
115 .long foo_mixwithout
116
117! Same as above, referencing symbol in other file (reference only from
118! this to other file).
119
120 .text
121 nop
122 movi (datalabel bar + 8) & 65535,r30
123
124 movi (datalabel barboth + 16) & 65535,r40
125 movi (barboth + 12) & 65535,r40
126
127 movi (barboth2 + 12) & 65535,r40
128 movi (datalabel barboth2 + 16) & 65535,r40
129
130 movi (barwithout + 24) & 65535,r30
131
132 .section .rodata
133 .long datalabel bar_other + 4
134 .long datalabel bar_otherboth + 40
135 .long bar_otherboth + 24
136 .long bar_otherboth2 + 24
137 .long datalabel bar_otherboth2 + 40
138 .long bar_otherwithout
139
140 .text
141 movi (datalabel bar_mix + 8) & 65535,r30
142 movi (bar_mix2 + 8) & 65535,r30
143 movi (datalabel bar_mixboth + 80) & 65535,r30
144 movi (bar_mixboth + 80) & 65535,r30
145 movi (bar_mixboth2 + 64) & 65535,r30
146 movi (datalabel bar_mixboth2 + 64) & 65535,r30
147 movi (bar_mixwithout + 42) & 65535,r30
148 movi (bar_mixwithout2 + 24) & 65535,r30
149
150 .section .rodata
151 .long bar_mix + 4
152 .long datalabel bar_mix2 + 48
153 .long datalabel bar_mixboth + 400
154 .long bar_mixboth + 420
155 .long bar_mixboth2 + 248
156 .long datalabel bar_mixboth2 + 240
157 .long bar_mixwithout
158
159! Same as above, referencing symbol in other file *and* within that file.
160
161 .text
162 movi (datalabel baz + 8) & 65535,r30
163
164 movi (datalabel bazboth + 16) & 65535,r40
165 movi (bazboth + 12) & 65535,r40
166
167 movi (bazboth2 + 12) & 65535,r40
168 movi (datalabel bazboth2 + 16) & 65535,r40
169
170 movi (bazwithout + 24) & 65535,r30
171
172 .section .rodata
173 .long datalabel baz_other + 4
174 .long datalabel baz_otherboth + 40
175 .long baz_otherboth + 24
176 .long baz_otherboth2 + 24
177 .long datalabel baz_otherboth2 + 40
178 .long baz_otherwithout
179
180 .text
181 movi (datalabel baz_mix + 8) & 65535,r30
182 movi (baz_mix2 + 8) & 65535,r30
183 movi (datalabel baz_mixboth + 80) & 65535,r30
184 movi (baz_mixboth + 80) & 65535,r30
185 movi (baz_mixboth2 + 64) & 65535,r30
186 movi (datalabel baz_mixboth2 + 64) & 65535,r30
187 movi (baz_mixwithout + 42) & 65535,r30
188 movi (baz_mixwithout2 + 24) & 65535,r30
189
190 .section .rodata
191 .long baz_mix + 4
192 .long datalabel baz_mix2 + 48
193 .long datalabel baz_mixboth + 400
194 .long baz_mixboth + 420
195 .long baz_mixboth2 + 248
196 .long datalabel baz_mixboth2 + 240
197 .long baz_mixwithout
198
199! Same as all of the above, but where the symbol is not an ISA32 one.
200
201 .data
202 .global dfoo
203dfoo:
204 .long 0
205 .long (datalabel dfoo + 8)
206
207 .global dfooboth
208dfooboth:
209 .long 0
210 .long (datalabel dfooboth + 16)
211 .long (dfooboth + 12)
212
213 .global dfooboth2
214dfooboth2:
215 .long 0
216 .long (dfooboth2 + 12)
217 .long (datalabel dfooboth2 + 16)
218
219 .global dfoowithout
220dfoowithout:
221 .long 0
222 .long (dfoowithout + 24)
223
224 .global dfoo_other
225dfoo_other:
226 .long 0
227 .global dfoo_otherboth
228dfoo_otherboth:
229 .long 0
230 .global dfoo_otherboth2
231dfoo_otherboth2:
232 .long 0
233 .global dfoo_otherwithout
234dfoo_otherwithout:
235 .long 0
236
237 .section .rodata
238 .long datalabel dfoo_other + 4
239 .long datalabel dfoo_otherboth + 40
240 .long dfoo_otherboth + 24
241 .long dfoo_otherboth2 + 24
242 .long datalabel dfoo_otherboth2 + 40
243 .long dfoo_otherwithout
244
245 .data
246
247! Same as above, mixing references from same and other section.
248 .global dfoo_mix
249dfoo_mix:
250 .long 0
251 .long (datalabel dfoo_mix + 8)
252 .global dfoo_mix2
253dfoo_mix2:
254 .long 0
255 .long (dfoo_mix2 + 8)
256 .global dfoo_mixboth
257dfoo_mixboth:
258 .long 0
259 .long (datalabel dfoo_mixboth + 80)
260 .long (dfoo_mixboth + 80)
261 .global dfoo_mixboth2
262dfoo_mixboth2:
263 .long 0
264 .long (dfoo_mixboth2 + 64)
265 .long (datalabel dfoo_mixboth2 + 64)
266 .global dfoo_mixwithout
267dfoo_mixwithout:
268 .long 0
269 .long (dfoo_mixwithout + 42)
270 .global dfoo_mixwithout2
271dfoo_mixwithout2:
272 .long 0
273 .long (dfoo_mixwithout2 + 24)
274
275 .section .rodata
276 .long dfoo_mix + 4
277 .long datalabel dfoo_mix2 + 48
278 .long datalabel dfoo_mixboth + 400
279 .long dfoo_mixboth + 420
280 .long dfoo_mixboth2 + 248
281 .long datalabel dfoo_mixboth2 + 240
282 .long dfoo_mixwithout
283
284! Same as above, referencing symbol in other file (reference only from
285! this to other file).
286
287 .text
288 movi (datalabel dbarboth + 16) & 65535,r40
289 movi (dbarboth + 12) & 65535,r40
290 movi (dbarboth2 + 12) & 65535,r40
291 movi (datalabel dbarboth2 + 16) & 65535,r40
292 movi (dbarwithout + 24) & 65535,r30
293
294 .data
295 .long (datalabel dbar + 8)
296 .long datalabel dbar_other + 4
297 .long datalabel dbar_otherboth + 40
298 .long dbar_otherboth + 24
299 .long dbar_otherboth2 + 24
300 .long datalabel dbar_otherboth2 + 40
301 .long dbar_otherwithout
302
303 .text
304 movi (datalabel dbar_mix + 8) & 65535,r30
305 movi (dbar_mix2 + 8) & 65535,r30
306 movi (datalabel dbar_mixboth + 80) & 65535,r30
307 movi (dbar_mixboth + 80) & 65535,r30
308 movi (dbar_mixboth2 + 64) & 65535,r30
309 movi (datalabel dbar_mixboth2 + 64) & 65535,r30
310 movi (dbar_mixwithout + 42) & 65535,r30
311 movi (dbar_mixwithout2 + 24) & 65535,r30
312
313 .data
314 .long dbar_mix + 4
315 .long datalabel dbar_mix2 + 48
316 .long datalabel dbar_mixboth + 400
317 .long dbar_mixboth + 420
318 .long dbar_mixboth2 + 248
319 .long datalabel dbar_mixboth2 + 240
320 .long dbar_mixwithout
321
322! Same as above, referencing symbol in other file *and* within that file.
323
324 .text
325 movi (datalabel dbazboth + 16) & 65535,r40
326 movi (dbazboth + 12) & 65535,r40
327
328 movi (dbazboth2 + 12) & 65535,r40
329 movi (datalabel dbazboth2 + 16) & 65535,r40
330
331 movi (dbazwithout + 24) & 65535,r30
332
333 .data
334 .long (datalabel dbaz + 8)
335 .long datalabel dbaz_other + 4
336 .long datalabel dbaz_otherboth + 40
337 .long dbaz_otherboth + 24
338 .long dbaz_otherboth2 + 24
339 .long datalabel dbaz_otherboth2 + 40
340 .long dbaz_otherwithout
341
342 .text
343 movi (datalabel dbaz_mix + 8) & 65535,r30
344 movi (dbaz_mix2 + 8) & 65535,r30
345 movi (datalabel dbaz_mixboth + 80) & 65535,r30
346 movi (dbaz_mixboth + 80) & 65535,r30
347 movi (dbaz_mixboth2 + 64) & 65535,r30
348 movi (datalabel dbaz_mixboth2 + 64) & 65535,r30
349 movi (dbaz_mixwithout + 42) & 65535,r30
350 movi (dbaz_mixwithout2 + 24) & 65535,r30
351
352 .data
353 .long dbaz_mix + 4
354 .long datalabel dbaz_mix2 + 48
355 .long datalabel dbaz_mixboth + 400
356 .long dbaz_mixboth + 420
357 .long dbaz_mixboth2 + 248
358 .long datalabel dbaz_mixboth2 + 240
359 .long dbaz_mixwithout
This page took 0.883119 seconds and 4 git commands to generate.