OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [ld/] [testsuite/] [ld-sh/] [sh64/] [shdl-1.s] - Blame information for rev 106

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 106 khays
! 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
24
start:
25
        nop
26
 
27
! Referenced from the same file, same section, is ISA32, only referenced
28
! with datalabel qualifier.
29
        .global foo
30
foo:
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
37
fooboth:
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
44
fooboth2:
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
51
foowithout:
52
        nop
53
        movi (foowithout + 24) & 65535,r30
54
 
55
! Same as above, different section than definition.
56
 
57
        .global foo_other
58
foo_other:
59
        nop
60
        .global foo_otherboth
61
foo_otherboth:
62
        nop
63
        .global foo_otherboth2
64
foo_otherboth2:
65
        nop
66
        .global foo_otherwithout
67
foo_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
82
foo_mix:
83
        nop
84
        movi (datalabel foo_mix + 8) & 65535,r30
85
        .global foo_mix2
86
foo_mix2:
87
        nop
88
        movi (foo_mix2 + 8) & 65535,r30
89
        .global foo_mixboth
90
foo_mixboth:
91
        nop
92
        movi (datalabel foo_mixboth + 80) & 65535,r30
93
        movi (foo_mixboth + 80) & 65535,r30
94
        .global foo_mixboth2
95
foo_mixboth2:
96
        nop
97
        movi (foo_mixboth2 + 64) & 65535,r30
98
        movi (datalabel foo_mixboth2 + 64) & 65535,r30
99
        .global foo_mixwithout
100
foo_mixwithout:
101
        nop
102
        movi (foo_mixwithout + 42) & 65535,r30
103
        .global foo_mixwithout2
104
foo_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
203
dfoo:
204
        .long 0
205
        .long (datalabel dfoo + 8)
206
 
207
        .global dfooboth
208
dfooboth:
209
        .long 0
210
        .long (datalabel dfooboth + 16)
211
        .long (dfooboth + 12)
212
 
213
        .global dfooboth2
214
dfooboth2:
215
        .long 0
216
        .long (dfooboth2 + 12)
217
        .long (datalabel dfooboth2 + 16)
218
 
219
        .global dfoowithout
220
dfoowithout:
221
        .long 0
222
        .long (dfoowithout + 24)
223
 
224
        .global dfoo_other
225
dfoo_other:
226
        .long 0
227
        .global dfoo_otherboth
228
dfoo_otherboth:
229
        .long 0
230
        .global dfoo_otherboth2
231
dfoo_otherboth2:
232
        .long 0
233
        .global dfoo_otherwithout
234
dfoo_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
249
dfoo_mix:
250
        .long 0
251
        .long (datalabel dfoo_mix + 8)
252
        .global dfoo_mix2
253
dfoo_mix2:
254
        .long 0
255
        .long (dfoo_mix2 + 8)
256
        .global dfoo_mixboth
257
dfoo_mixboth:
258
        .long 0
259
        .long (datalabel dfoo_mixboth + 80)
260
        .long (dfoo_mixboth + 80)
261
        .global dfoo_mixboth2
262
dfoo_mixboth2:
263
        .long 0
264
        .long (dfoo_mixboth2 + 64)
265
        .long (datalabel dfoo_mixboth2 + 64)
266
        .global dfoo_mixwithout
267
dfoo_mixwithout:
268
        .long 0
269
        .long (dfoo_mixwithout + 42)
270
        .global dfoo_mixwithout2
271
dfoo_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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.