159cc6ca70a890571fb977500d139142a6eed6f5
[deliverable/binutils-gdb.git] / gas / testsuite / gas / hppa / reloc / reloc.exp
1 # Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16
17 # Please email any bugs, comments, and/or additions to this file to:
18 # DejaGnu@cygnus.com
19
20 # Written by the Center for Software Science at the University of Utah
21 # and by Cygnus Support.
22
23 proc do_ble_relocation_test {} {
24 set testname "blebug.s: Test for proper relocation for BLE (part 2)"
25 set x 0
26
27 if [gas_test_old "blebug.s" "" "Proper relocation for BLE (part 1)"] then {
28 objdump_start_no_subdir "a.out" "-r"
29
30 if ![istarget hppa*-*-*elf*] then {
31 # At one time both versions of the assembler would incorrectly use
32 # a PC-relative relocation for a BLE instruction.
33 while 1 {
34 expect {
35 -re "^0+4\[^\n\]*ABS_CALL\[^\n\]*\n" { set x 1 }
36 -re "\[^\n\]*\n" { }
37 timeout { perror "timeout\n"; break }
38 eof { break }
39 }
40 }
41 } else {
42 # At one time both versions of the assembler would incorrectly use
43 # a PC-relative relocation for a BLE instruction.
44 while 1 {
45 expect {
46 -re "^0+\[^\n\]*DIR21L\[^\n\]*\n" { set x 1 }
47 -re "^0+4\[^\n\]*DIR17R\[^\n\]*\n" { set x 1 }
48 -re "\[^\n\]*\n" { }
49 timeout { perror "timeout\n"; break }
50 eof { break }
51 }
52 }
53 }
54 }
55
56 # This was intended to do any cleanup necessary. It kinda looks like it
57 # isn't needed, but just in case, please keep it in for now.
58 objdump_finish
59
60 # Did we find what we were looking for? If not, flunk it.
61 if [expr $x==1] then { pass $testname } else { fail $testname }
62 }
63
64 proc do_relocation_reduction_tests {} {
65 set testname "reduce.s: Test relocation reductions (part 2)"
66 set x 0
67
68 if [istarget hppa*w-*-*] then {
69 return;
70 }
71
72 if [gas_test_old "reduce.s" "" "Relocation reductions (part1)"] then {
73 objdump_start_no_subdir "a.out" "-r"
74
75 # Check to make sure relocations involving procedure labels
76 # are not reduced to a relocation involving some other symbol.
77 # Doing so makes generating parameter relocation stubs impossible.
78 while 1 {
79 expect {
80 -re "^0+4\[^\n\]*PLABEL\[^\n\]*foo\[^\n\]*\n"
81 { set x [expr $x+1] }
82 -re "^0+14\[^\n\]*PCREL\[^\n\]*foo\[^\n\]*\n"
83 { set x [expr $x+1] }
84 -re "\[^\n\]*\n" { }
85 timeout { perror "timeout\n"; break }
86 eof { break }
87 }
88 }
89 }
90
91 # This was intended to do any cleanup necessary. It kinda looks like it
92 # isn't needed, but just in case, please keep it in for now.
93 objdump_finish
94
95 # Did we find what we were looking for? If not, flunk it.
96 if [expr $x==2] then { pass $testname } else { fail $testname }
97
98 set testname "reduce2.s: More relocation reduction tests (part 2)"
99 set x 0
100
101 if {![istarget hppa*-*-*elf*] && ![istarget hppa*-*-linux*]} then {
102
103 if [gas_test_old "reduce2.s" "" "More relocation reductions (part1)"] then {
104 objdump_start_no_subdir "a.out" "-r"
105
106 # Check to make sure DLT relative relocs are not reduced to sym+addend
107 # Doing so doesn't work as one might expect
108 while 1 {
109 expect {
110 -re "^0+4\[^\n\]*DLT\[^\n\]*L.C0000\[^\n\]*\n"
111 { set x [expr $x+1] }
112 -re "^0+1c\[^\n\]*DLT\[^\n\]*L.C0000\[^\n\]*\n"
113 { set x [expr $x+1] }
114 -re "^0+30\[^\n\]*DLT\[^\n\]*L.C0001\[^\n\]*\n"
115 { set x [expr $x+1] }
116 -re "^0+48\[^\n\]*DLT\[^\n\]*L.C0001\[^\n\]*\n"
117 { set x [expr $x+1] }
118 -re "\[^\n\]*\n" { }
119 timeout { perror "timeout\n"; break }
120 eof { break }
121 }
122 }
123 }
124
125 # This was intended to do any cleanup necessary. It kinda looks like it
126 # isn't needed, but just in case, please keep it in for now.
127 objdump_finish
128
129 # Did we find what we were looking for? If not, flunk it.
130 if [expr $x==2] then { pass $testname } else { fail $testname }
131 }
132
133 set testname "reduce3.s: Test even more relocation reductions (part 2)"
134 set x 0
135
136 if [gas_test_old "reduce3.s" "" "Even more relocation reductions (part1)"] then {
137 objdump_start_no_subdir "a.out" "-r"
138
139 # Check to make sure relocations involving procedure labels
140 # are not reduced to a relocation involving some other symbol.
141 # Doing so makes generating parameter relocation stubs impossible.
142 while 1 {
143 expect {
144 -re "^0+c\[^\n\]*yabba\[^\n\+\]*\n"
145 { set x [expr $x+1] }
146 -re "^0+c\[^\n\]*yabba\+\[^\n\]*\n"
147 { set x 0; break }
148 -re "^0+10\[^\n\]*yabba\[^\n\+\]*\n"
149 { set x [expr $x+1] }
150 -re "^0+10\[^\n\]*yabba\+\[^\n\]*\n"
151 { set x 0; break }
152 -re "\[^\n\]*\n" { }
153 timeout { perror "timeout\n"; break }
154 eof { break }
155 }
156 }
157 }
158
159 # This was intended to do any cleanup necessary. It kinda looks like it
160 # isn't needed, but just in case, please keep it in for now.
161 objdump_finish
162
163 # Did we find what we were looking for? If not, flunk it.
164 if [expr $x==2] then { pass $testname } else { fail $testname }
165 }
166
167 proc do_ble_mode_selector_test {} {
168 set testname "blebug2.s: blebug2"
169 set x 0
170
171 gas_start "blebug2.s" "-al"
172
173 # GAS uses too many bits on the BLE instruction.
174 while 1 {
175 expect {
176 -re "^ +\[0-9\]+ 0000 20202801\[^\n\]*\n" { set x [expr $x+1] }
177 -re "^ +\[0-9\]+ 0004 E420E008\[^\n\]*\n" { set x [expr $x+1] }
178 -re "\[^\n\]*\n" { }
179 timeout { perror "timeout\n"; break }
180 eof { break }
181 }
182 }
183
184 # This was intended to do any cleanup necessary. It kinda looks like it
185 # isn't needed, but just in case, please keep it in for now.
186 gas_finish
187
188 # Did we find what we were looking for? If not, flunk it.
189 if [expr $x==2] then { pass $testname } else { fail $testname }
190 }
191
192 proc do_ble_relocation_test {} {
193 set testname "blebug3.s: blebug3"
194 set x 0
195
196 gas_start "blebug3.s" "-al"
197
198 while 1 {
199 expect {
200 -re "^ +\[0-9\]+ 0000 E4002000\[^\n\]*\n" { set x [expr $x+1] }
201 -re "\[^\n\]*\n" { }
202 timeout { perror "timeout\n"; break }
203 eof { break }
204 }
205 }
206
207 # This was intended to do any cleanup necessary. It kinda looks like it
208 # isn't needed, but just in case, please keep it in for now.
209 gas_finish
210
211 # Did we find what we were looking for? If not, flunk it.
212 if [expr $x==1] then { pass $testname } else { fail $testname }
213 }
214
215 proc do_plabel_relocation_test {} {
216 set testname "plabelbug.s: Old gas-1.36 plabel bug (part 2)"
217 set x 0
218
219 if [gas_test_old "plabelbug.s" "" "Old gas-1.36 plabel bug (part 1)"] {
220 objdump_start_no_subdir "a.out" "-r"
221
222 # Check that we make PLABEL relocation entries when they're needed.
223 while 1 {
224 expect {
225 -re "^0+\[^\n\]*PLABEL\[^\n\]*\n"
226 { set x [expr $x+1] }
227 -re "^0+4\[^\n\]*PLABEL\[^\n\]*\n"
228 { set x [expr $x+1] }
229 -re "\[^\n\]*\n" { }
230 timeout { perror "timeout\n"; break }
231 eof { break }
232 }
233 }
234
235 # This was intended to do any cleanup necessary. It kinda looks like it
236 # isn't needed, but just in case, please keep it in for now.
237 objdump_finish
238
239 # Did we find what we were looking for? If not, flunk it.
240 if [expr $x==2] then { pass $testname } else { fail $testname }
241 }
242 }
243
244 proc do_selector_scope_test {} {
245 set testname "selectorbug.s: Test scope of field selector"
246 set x 0
247
248 if [istarget hppa*w-*-*] then {
249 return;
250 }
251
252 if [gas_test_old "selectorbug.s" "" "Test scope of field selector (part 1)"] {
253 objdump_start_no_subdir "a.out" "-r"
254
255 # Check to make sure the relocation entry after the plabel is correct.
256 # If an old field selector was incorrectly "carried" over, then
257 # this test will fail.
258 if {[istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*]} then {
259 while 1 {
260 expect {
261 -re "^0+14\[^\n\]*DIR32\[^\n\]*\n"
262 { set x 1 }
263 -re "^0+14\[^\n\]*PLABEL\[^\n\]*foo\[^\n\]*\n"
264 { set x 0 }
265 -re "\[^\n\]*\n" { }
266 timeout { perror "timeout\n"; break }
267 eof { break }
268 }
269 }
270 } else {
271 while 1 {
272 expect {
273 -re "^0+14\[^\n\]*DATA_ONE\[^\n\]*\n"
274 { set x 1 }
275 -re "^0+14\[^\n\]*PLABEL\[^\n\]*foo\[^\n\]*\n"
276 { set x 0 }
277 -re "\[^\n\]*\n" { }
278 timeout { perror "timeout\n"; break }
279 eof { break }
280 }
281 }
282 }
283
284 # This was intended to do any cleanup necessary. It kinda looks like it
285 # isn't needed, but just in case, please keep it in for now.
286 objdump_finish
287
288 # Did we find what we were looking for? If not, flunk it.
289 if [expr $x==1] then { pass $testname } else { fail $testname }
290 }
291 }
292
293 proc do_local_label_as_operand_test {} {
294 set testname "labelopbug.s: Test local label as operand (non-branching)"
295 set x 0
296
297 if [gas_test_old "labelopbug.s" "" "Local label as operand (part 1)"] {
298 objdump_start_no_subdir "a.out" "-r"
299
300 # Check to make sure we handle difference of local lables as an operand
301 # to a non-branching instruction correctly.
302 while 1 {
303 expect {
304 -re "^0+2c\[^\n\]*0x0+24\[^\n\]*\n"
305 { set x [expr $x+1] }
306 -re "^0+30\[^\n\]*0x0+24\[^\n\]*\n"
307 { set x [expr $x+1] }
308 -re "\[^\n\]*\n" { }
309 timeout { perror "timeout\n"; break }
310 eof { break }
311 }
312 }
313
314 # This was intended to do any cleanup necessary. It kinda looks like it
315 # isn't needed, but just in case, please keep it in for now.
316 objdump_finish
317
318 # Did we find what we were looking for? If not, flunk it.
319 if [expr $x==2] then { pass $testname } else { fail $testname }
320 }
321 }
322
323 proc do_exit_relocation_test {} {
324 set testname "exitbug.s: Test for bogus R_EXIT relocation (part 2)"
325 set x 0
326
327 # Elf (osf) does not use ENTRY/EXIT relocations.
328 # I guess we could look at the unwind subspaces it builds...
329 # Until then, make sure it still assembles.
330 if {[istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*]} then {
331 gas_test_old "exitbug.s" "" "Test for bogus R_EXIT relocation (part 1)"
332 return;
333 }
334
335 if [gas_test_old "exitbug.s" "" "Test for bogus R_EXIT relocation (part 1)"] {
336 objdump_start_no_subdir "a.out" "-r"
337
338 # Note that a match here is really a FAILURE!
339 while 1 {
340 expect {
341 -re "^0+\[^\n\]*R_EXIT\[^\n\]*\n"
342 { set x [expr $x+1] }
343 -re "\[^\n\]*\n" { }
344 timeout { perror "timeout\n"; break }
345 eof { break }
346 }
347 }
348
349 # This was intended to do any cleanup necessary. It kinda looks like it
350 # isn't needed, but just in case, please keep it in for now.
351 objdump_finish
352
353 # Did we find what we were looking for? If not, flunk it.
354 if [expr $x==0] then { pass $testname } else { fail $testname }
355 }
356 }
357
358 proc do_cross_space_fixup_test_1 {} {
359 set testname "fixupbug.s: Test cross space jump/call fixup bug (part 2)"
360 set x 0
361
362 if [istarget hppa*w-*-*] then {
363 return;
364 }
365
366 # ELF (osf) doesn't really handle extra sections too well...
367 if {[istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*]} then {
368 return;
369 }
370
371 if [gas_test_old "fixupbug.s" "" "Test cross space jump/call fixup bug (part 1)"] {
372 objdump_start_no_subdir "a.out" "-r"
373
374 # Make sure GAS generated a fixup/relocation for the cross-space
375 # branch/call
376 while 1 {
377 expect {
378 -re "^0+\[^\n\]*PCREL_CALL\[^\n\]*\n"
379 { set x [expr $x+1] }
380 -re "\[^\n\]*\n" { }
381 timeout { perror "timeout\n"; break }
382 eof { break }
383 }
384 }
385
386 # This was intended to do any cleanup necessary. It kinda looks like it
387 # isn't needed, but just in case, please keep it in for now.
388 objdump_finish
389
390 # Did we find what we were looking for? If not, flunk it.
391 if [expr $x==1] then { pass $testname } else { fail $testname }
392 }
393 }
394
395 proc do_cross_space_fixup_test_2 {} {
396 set testname "fixupbug.s: Test cross space jump/call fixup bug (part 3)"
397 set x 0
398
399 if [istarget hppa*w-*-*] then {
400 return;
401 }
402
403 # ELF (osf) doesn't really handle extra sections too well...
404 if {[istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*]} then {
405 return;
406 }
407
408 gas_start "fixupbug.s" "-al"
409
410 while 1 {
411 expect {
412 -re "^ +\[0-9\]+ 0000 E8000002\[^\n\]*\n" { set x [expr $x+1] }
413 -re "\[^\n\]*\n" { }
414 timeout { perror "timeout\n"; break }
415 eof { break }
416 }
417 }
418
419 # This was intended to do any cleanup necessary. It kinda looks like it
420 # isn't needed, but just in case, please keep it in for now.
421 gas_finish
422
423 # Did we find what we were looking for? If not, flunk it.
424 if [expr $x==1] then { pass $testname } else { fail $testname }
425 }
426
427 proc do_round_mode_test {} {
428 set testname "roundmode.s: Test switching of rounding modes (part 2)"
429 set x 0
430
431 if [gas_test_old "roundmode.s" "" "Test switch of rounding modes(part 1)"] {
432 objdump_start_no_subdir "a.out" "-r"
433
434 # Make sure GAS generated correct relocations to switch rounding modes.
435 # Also make sure (for SOM) that redundant rounding mode relocations
436 # were eliminated.
437 if { [istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*] || [istarget hppa*w-*-*] } then {
438 while 1 {
439 expect {
440 -re "^0+\[^\n\]*DIR21L\[^\n\]*\n"
441 { set x [expr $x+1] }
442 -re "^0+4\[^\n\]*DIR14R\[^\n\]*\n"
443 { set x [expr $x+1] }
444 -re "^0+8\[^\n\]*DIR21L\[^\n\]*\n"
445 { set x [expr $x+1] }
446 -re "^0+c\[^\n\]*DIR14R\[^\n\]*\n"
447 { set x [expr $x+1] }
448 -re "^0+10\[^\n\]*DIR21L\[^\n\]*\n"
449 { set x [expr $x+1] }
450 -re "^0+14\[^\n\]*DIR14R\[^\n\]*\n"
451 { set x [expr $x+1] }
452 -re "^0+18\[^\n\]*DIR21L\[^\n\]*\n"
453 { set x [expr $x+1] }
454 -re "^0+1c\[^\n\]*DIR14R\[^\n\]*\n"
455 { set x [expr $x+1] }
456 -re "\[^\n\]*\n" { }
457 timeout { perror "timeout\n"; break }
458 eof { break }
459 }
460 }
461 } else {
462 while 1 {
463 expect {
464 -re "^0+\[^\n\]*R_R_MODE\[^\n\]*\n"
465 { set x [expr $x+1] }
466 -re "^0+4\[^\n\]*R_R_MODE\[^\n\]*\n"
467 { fail $testname }
468 -re "^0+8\[^\n\]*R_N_MODE\[^\n\]*\n"
469 { set x [expr $x+1] }
470 -re "^0+c\[^\n\]*R_N_MODE\[^\n\]*\n"
471 { fail $testname }
472 -re "^0+10\[^\n\]*R_R_MODE\[^\n\]*\n"
473 { set x [expr $x+1] }
474 -re "^0+14\[^\n\]*R_R_MODE\[^\n\]*\n"
475 { fail $testname }
476 -re "^0+1c\[^\n\]*R_R_MODE\[^\n\]*\n"
477 { fail $testname }
478 -re "\[^\n\]*\n" { }
479 timeout { perror "timeout\n"; break }
480 eof { break }
481 }
482 }
483 }
484
485 # This was intended to do any cleanup necessary. It kinda looks like it
486 # isn't needed, but just in case, please keep it in for now.
487 objdump_finish
488
489 # Did we find what we were looking for? If not, flunk it.
490 if {[istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*] || [istarget hppa*w-*-*] } then {
491 if [expr $x==8] then { pass $testname } else { fail $testname }
492 } else {
493 if [expr $x==3] then { pass $testname } else { fail $testname }
494 }
495 }
496 }
497
498 proc do_function_reloc_bug {} {
499 set testname "funcrelocbug.s: Test for reloc bug in non-plabel function reference (part 2)"
500 set x 0
501
502 if [gas_test_old "funcrelocbug.s" "" "Test for reloc bug in non-plabel function reference (part 1)"] {
503 objdump_start_no_subdir "a.out" "-r"
504
505 # Make sure GAS generated a correct relocation for the reference.
506 # branch/call
507 while 1 {
508 expect {
509 -re "^0+cc\[^\n\]*f2___4\[^\n+\]*\n"
510 { set x [expr $x+1] }
511 -re "^0+d0\[^\n\]*f2___4\[^\n+\]*\n"
512 { set x [expr $x+1] }
513 -re "\[^\n\]*\n" { }
514 timeout { perror "timeout\n"; break }
515 eof { break }
516 }
517 }
518
519 # This was intended to do any cleanup necessary. It kinda looks like it
520 # isn't needed, but just in case, please keep it in for now.
521 objdump_finish
522
523 # Did we find what we were looking for? If not, flunk it.
524 if [expr $x==2] then { pass $testname } else { fail $testname }
525
526 set testname "funcrelocbug.s: Test for reloc bug in non-plabel function reference (part3)"
527 set x 0
528
529 objdump_start_no_subdir "a.out" "--prefix-addresses -d"
530 # Make sure we didn't put anything in the instruction itself!
531 while 1 {
532 expect {
533 -re "^0+cc\[^\n\]*ldil 0,r20\[^\n\]*\n"
534 { set x [expr $x+1] }
535 -re "^0+d0\[^\n\]*ldo 0\[\(\]+r20\[\)\]+,r19\[^\n\]*\n"
536 { set x [expr $x+1] }
537 -re "\[^\n\]*\n" { }
538 timeout { perror "timeout\n"; break }
539 eof { break }
540 }
541 }
542
543 # This was intended to do any cleanup necessary. It kinda looks like it
544 # isn't needed, but just in case, please keep it in for now.
545 objdump_finish
546
547 # Did we find what we were looking for? If not, flunk it.
548 if [expr $x==2] then { pass $testname } else { fail $testname }
549 }
550
551 }
552
553 proc do_r_no_reloc {} {
554 set testname "r_no_reloc.s: Test for reloc bug in 4-byte R_NO_RELCOATION fixups (part 2)"
555 set x 0
556
557 if [gas_test_old "r_no_reloc.s" "" "Test for reloc bug in 4-byte R_NO_RELOCATION fixups (part 1)"] {
558 objdump_start_no_subdir "a.out" "-r"
559
560 # Make sure GAS generated a correct relocation for the reference.
561 while 1 {
562 expect {
563 -re "^0+c0004\[^\n\]*PLABEL\[^\n]*g\[^\n\]*\n"
564 { set x [expr $x+1] }
565 -re "\[^\n\]*\n" { }
566 timeout { perror "timeout\n"; break }
567 eof { break }
568 }
569 }
570
571 # This was intended to do any cleanup necessary. It kinda looks like it
572 # isn't needed, but just in case, please keep it in for now.
573 objdump_finish
574
575 # Did we find what we were looking for? If not, flunk it.
576 if [expr $x==1] then { pass $testname } else { fail $testname }
577
578 }
579 }
580
581 proc do_pic_relocation_test {} {
582 set testname "picreloc.s: Test for proper PIC relocation (part 2)"
583 set x 0
584
585 if [istarget hppa*w-*-*] then {
586 return;
587 }
588
589 # ELF (osf) doesn't really handle extra sections too well...
590 if {[istarget hppa*-*-*elf*] || [istarget hppa*-*-linux*]} then {
591 return;
592 }
593
594 gas_start "picreloc.s" "-al"
595
596 while 1 {
597 expect {
598 -re "^ +\[0-9\]+ 0000 00000004\[^\n\]*\n" { set x [expr $x+1] }
599 -re "\[^\n\]*\n" { }
600 timeout { perror "timeout\n"; break }
601 eof { break }
602 }
603 }
604
605 # This was intended to do any cleanup necessary. It kinda looks like it
606 # isn't needed, but just in case, please keep it in for now.
607 gas_finish
608
609 # Did we find what we were looking for? If not, flunk it.
610 if [expr $x==1] then { pass $testname } else { fail $testname }
611 }
612
613 proc do_apply_test {} {
614 set testname "applybug.s: Test for proper fixup appliation (part 2)"
615 set x 0
616
617 # ELF (osf) doesn't really handle extra sections too well...
618 if [istarget hppa*-*-*elf*] then {
619 return;
620 }
621
622 gas_start "applybug.s" "-al"
623
624 while 1 {
625 expect {
626 -re "^ +\[0-9\]+ 0000 00000000\[^\n\]*\n" { set x [expr $x+1] }
627 -re "^ +\[0-9\]+ 0004 00000000\[^\n\]*\n" { set x [expr $x+1] }
628 -re "^ +\[0-9\]+ 0008 00000000\[^\n\]*\n" { set x [expr $x+1] }
629 -re "\[^\n\]*\n" { }
630 timeout { perror "timeout\n"; break }
631 eof { break }
632 }
633 }
634
635 # This was intended to do any cleanup necessary. It kinda looks like it
636 # isn't needed, but just in case, please keep it in for now.
637 gas_finish
638
639 # Did we find what we were looking for? If not, flunk it.
640 if [expr $x==3] then { pass $testname } else { fail $testname }
641 }
642 if [istarget hppa*-*-*] then {
643 # Make sure we put the right relocation entry on a BLE instruction.
644 do_ble_relocation_test
645
646 # Make sure relocation reductions are not too agressive about
647 # adjusting relocations against some symbols.
648 do_relocation_reduction_tests
649
650 # Check that mode selectors on a ble instruction actually work.
651 do_ble_mode_selector_test
652
653 # Check that we take the -8 adjustment into account when zeroing
654 # out the displacement field in a ble instruction with a reloc
655 do_ble_relocation_test
656
657 # 1.36 simply didn't generate all the plabels it should have. Make
658 # sure gas-2 does.
659 do_plabel_relocation_test
660
661 # Make sure a field selector only effects the current instruction
662 # or assembler directive.
663 do_selector_scope_test
664
665 # This should really generate a relocation. It would make life much
666 # easier on the optimizing linker. Until then just make sure the
667 # difference is computed correctly.
668 do_local_label_as_operand_test
669
670 # GAS2 incorrectly generated R_EXIT relocations when .exit directives
671 # were not in the source code.
672 do_exit_relocation_test
673
674 # GAS2 incorrectly thought it could apply a fixup for a pc-relative
675 # branch/call which crossed different subspaces.
676 # Also check that the assembled instruction is correct
677 do_cross_space_fixup_test_1
678 do_cross_space_fixup_test_2
679
680 # Make sure we switch rounding modes correctly
681 do_round_mode_test
682
683 # Test for a bug found when a function was used in a non-branching
684 # instruction *without* a plabel (for portable runtime model)
685 do_function_reloc_bug
686
687 # Test for an off-by-one bug in the handling of 4-byte R_NO_RELOCATION
688 # fixups.
689 do_r_no_reloc
690
691 # Test a relocation problem which shows up when building shared
692 # libraries in SOM
693 do_pic_relocation_test
694
695 # Test a problem with md_apply_fix that was introduced when fixing
696 # the pic relocation test.
697 do_apply_test
698
699 # Make sure gas doesn't resolve long-calls which are to be fixed
700 # by the linker
701 gas_test "longcall.s" "" "" "Avoid resolving long-calls"
702 }
This page took 0.055885 seconds and 3 git commands to generate.