|
44 | 44 | # RUN: not ld.lld a.o b.o c.o diff_stack_align.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=STACK_ALIGN --implicit-check-not=error: |
45 | 45 | # STACK_ALIGN: error: diff_stack_align.o:(.riscv.attributes) has stack_align=32 but a.o:(.riscv.attributes) has stack_align=16 |
46 | 46 |
|
47 | | -## merging atomic_abi values for A6C and A7 lead to an error. |
48 | | -# RUN: llvm-mc -filetype=obj -triple=riscv64 atomic_abi_A6C.s -o atomic_abi_A6C.o |
49 | | -# RUN: llvm-mc -filetype=obj -triple=riscv64 atomic_abi_A7.s -o atomic_abi_A7.o |
50 | | -# RUN: not ld.lld atomic_abi_A6C.o atomic_abi_A7.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=ATOMIC_ABI_ERROR --implicit-check-not=error: |
51 | | -# ATOMIC_ABI_ERROR: error: atomic_abi_A6C.o:(.riscv.attributes) has atomic_abi=1 but atomic_abi_A7.o:(.riscv.attributes) has atomic_abi=3 |
52 | | - |
53 | | - |
54 | | -# RUN: llvm-mc -filetype=obj -triple=riscv64 atomic_abi_A6S.s -o atomic_abi_A6S.o |
55 | | -# RUN: ld.lld atomic_abi_A6S.o atomic_abi_A6C.o -o atomic_abi_A6C_A6S |
56 | | -# RUN: llvm-readobj -A atomic_abi_A6C_A6S | FileCheck %s --check-prefix=A6C_A6S |
57 | | - |
58 | | -# RUN: ld.lld atomic_abi_A6S.o atomic_abi_A7.o -o atomic_abi_A6S_A7 |
59 | | -# RUN: llvm-readobj -A atomic_abi_A6S_A7 | FileCheck %s --check-prefix=A6S_A7 |
60 | | - |
61 | | -# RUN: llvm-mc -filetype=obj -triple=riscv64 atomic_abi_unknown.s -o atomic_abi_unknown.o |
62 | | -# RUN: ld.lld atomic_abi_unknown.o atomic_abi_A6C.o -o atomic_abi_A6C_unknown |
63 | | -# RUN: llvm-readobj -A atomic_abi_A6C_unknown | FileCheck %s --check-prefixes=UNKNOWN_A6C |
64 | | - |
65 | | -# RUN: ld.lld atomic_abi_unknown.o diff_stack_align.o -o atomic_abi_none_unknown |
66 | | -# RUN: llvm-readobj -A atomic_abi_none_unknown | FileCheck %s --check-prefixes=UNKNOWN_NONE |
67 | | - |
68 | | -# RUN: ld.lld diff_stack_align.o atomic_abi_A6C.o -o atomic_abi_A6C_none |
69 | | -# RUN: llvm-readobj -A atomic_abi_A6C_none | FileCheck %s --check-prefixes=NONE_A6C |
70 | | - |
71 | | -# RUN: ld.lld atomic_abi_unknown.o atomic_abi_A6S.o -o atomic_abi_A6S_unknown |
72 | | -# RUN: llvm-readobj -A atomic_abi_A6S_unknown | FileCheck %s --check-prefix=UNKNOWN_A6S |
73 | | - |
74 | | -# RUN: ld.lld atomic_abi_unknown.o atomic_abi_A7.o -o atomic_abi_A7_unknown |
75 | | -# RUN: llvm-readobj -A atomic_abi_A7_unknown | FileCheck %s --check-prefix=UNKNOWN_A7 |
76 | | - |
77 | | -# RUN: ld.lld diff_stack_align.o atomic_abi_A7.o -o atomic_abi_A7_none |
78 | | -# RUN: llvm-readobj -A atomic_abi_A7_none | FileCheck %s --check-prefix=NONE_A7 |
79 | | - |
80 | 47 | ## The deprecated priv_spec is not handled as GNU ld does. |
81 | 48 | ## Differing priv_spec attributes lead to an absent attribute. |
82 | 49 | # RUN: llvm-mc -filetype=obj -triple=riscv64 diff_priv_spec.s -o diff_priv_spec.o |
|
319 | 286 | .attribute priv_spec, 3 |
320 | 287 | .attribute priv_spec_minor, 3 |
321 | 288 |
|
322 | | -#--- atomic_abi_unknown.s |
323 | | -.attribute atomic_abi, 0 |
324 | | - |
325 | | -#--- atomic_abi_A6C.s |
326 | | -.attribute atomic_abi, 1 |
327 | | - |
328 | | -#--- atomic_abi_A6S.s |
329 | | -.attribute atomic_abi, 2 |
330 | | - |
331 | | -#--- atomic_abi_A7.s |
332 | | -.attribute atomic_abi, 3 |
333 | | - |
334 | | -# UNKNOWN_NONE: BuildAttributes { |
335 | | -# UNKNOWN_NONE-NEXT: FormatVersion: 0x41 |
336 | | -# UNKNOWN_NONE-NEXT: Section 1 { |
337 | | -# UNKNOWN_NONE-NEXT: SectionLength: 17 |
338 | | -# UNKNOWN_NONE-NEXT: Vendor: riscv |
339 | | -# UNKNOWN_NONE-NEXT: Tag: Tag_File (0x1) |
340 | | -# UNKNOWN_NONE-NEXT: Size: 7 |
341 | | -# UNKNOWN_NONE-NEXT: FileAttributes { |
342 | | -# UNKNOWN_NONE-NEXT: Attribute { |
343 | | -# UNKNOWN_NONE-NEXT: Tag: 4 |
344 | | -# UNKNOWN_NONE-NEXT: Value: 32 |
345 | | -# UNKNOWN_NONE-NEXT: TagName: stack_align |
346 | | -# UNKNOWN_NONE-NEXT: Description: Stack alignment is 32-bytes |
347 | | -# UNKNOWN_NONE-NEXT: } |
348 | | -# UNKNOWN_NONE-NEXT: } |
349 | | -# UNKNOWN_NONE-NEXT: } |
350 | | -# UNKNOWN_NONE-NEXT: } |
351 | | - |
352 | | -# NONE_A6C: BuildAttributes { |
353 | | -# NONE_A6C-NEXT: FormatVersion: 0x41 |
354 | | -# NONE_A6C-NEXT: Section 1 { |
355 | | -# NONE_A6C-NEXT: SectionLength: 19 |
356 | | -# NONE_A6C-NEXT: Vendor: riscv |
357 | | -# NONE_A6C-NEXT: Tag: Tag_File (0x1) |
358 | | -# NONE_A6C-NEXT: Size: 9 |
359 | | -# NONE_A6C-NEXT: FileAttributes { |
360 | | -# NONE_A6C-NEXT: Attribute { |
361 | | -# NONE_A6C-NEXT: Tag: 14 |
362 | | -# NONE_A6C-NEXT: Value: 1 |
363 | | -# NONE_A6C-NEXT: TagName: atomic_abi |
364 | | -# NONE_A6C-NEXT: Description: Atomic ABI is 1 |
365 | | -# NONE_A6C-NEXT: } |
366 | | -# NONE_A6C-NEXT: Attribute { |
367 | | -# NONE_A6C-NEXT: Tag: 4 |
368 | | -# NONE_A6C-NEXT: Value: 32 |
369 | | -# NONE_A6C-NEXT: TagName: stack_align |
370 | | -# NONE_A6C-NEXT: Description: Stack alignment is 32-bytes |
371 | | -# NONE_A6C-NEXT: } |
372 | | -# NONE_A6C-NEXT: } |
373 | | -# NONE_A6C-NEXT: } |
374 | | -# NONE_A6C-NEXT: } |
375 | | - |
376 | | -# UNKNOWN_A6C: BuildAttributes { |
377 | | -# UNKNOWN_A6C-NEXT: FormatVersion: 0x41 |
378 | | -# UNKNOWN_A6C-NEXT: Section 1 { |
379 | | -# UNKNOWN_A6C-NEXT: SectionLength: 17 |
380 | | -# UNKNOWN_A6C-NEXT: Vendor: riscv |
381 | | -# UNKNOWN_A6C-NEXT: Tag: Tag_File (0x1) |
382 | | -# UNKNOWN_A6C-NEXT: Size: 7 |
383 | | -# UNKNOWN_A6C-NEXT: FileAttributes { |
384 | | -# UNKNOWN_A6C-NEXT: Attribute { |
385 | | -# UNKNOWN_A6C-NEXT: Tag: 14 |
386 | | -# UNKNOWN_A6C-NEXT: Value: 1 |
387 | | -# UNKNOWN_A6C-NEXT: TagName: atomic_abi |
388 | | -# UNKNOWN_A6C-NEXT: Description: Atomic ABI is 1 |
389 | | -# UNKNOWN_A6C-NEXT: } |
390 | | -# UNKNOWN_A6C-NEXT: } |
391 | | -# UNKNOWN_A6C-NEXT: } |
392 | | -# UNKNOWN_A6C-NEXT: } |
393 | | - |
394 | | -# UNKNOWN_A6S: BuildAttributes { |
395 | | -# UNKNOWN_A6S-NEXT: FormatVersion: 0x41 |
396 | | -# UNKNOWN_A6S-NEXT: Section 1 { |
397 | | -# UNKNOWN_A6S-NEXT: SectionLength: |
398 | | -# UNKNOWN_A6S-NEXT: Vendor: riscv |
399 | | -# UNKNOWN_A6S-NEXT: Tag: Tag_File (0x1) |
400 | | -# UNKNOWN_A6S-NEXT: Size: 7 |
401 | | -# UNKNOWN_A6S-NEXT: FileAttributes { |
402 | | -# UNKNOWN_A6S-NEXT: Attribute { |
403 | | -# UNKNOWN_A6S-NEXT: Tag: 14 |
404 | | -# UNKNOWN_A6S-NEXT: Value: 2 |
405 | | -# UNKNOWN_A6S-NEXT: TagName: atomic_abi |
406 | | -# UNKNOWN_A6S-NEXT: Description: Atomic ABI is 2 |
407 | | -# UNKNOWN_A6S-NEXT: } |
408 | | -# UNKNOWN_A6S-NEXT: } |
409 | | -# UNKNOWN_A6S-NEXT: } |
410 | | -# UNKNOWN_A6S-NEXT: } |
411 | | - |
412 | | -# NONE_A7: BuildAttributes { |
413 | | -# NONE_A7-NEXT: FormatVersion: 0x41 |
414 | | -# NONE_A7-NEXT: Section 1 { |
415 | | -# NONE_A7-NEXT: SectionLength: 19 |
416 | | -# NONE_A7-NEXT: Vendor: riscv |
417 | | -# NONE_A7-NEXT: Tag: Tag_File (0x1) |
418 | | -# NONE_A7-NEXT: Size: 9 |
419 | | -# NONE_A7-NEXT: FileAttributes { |
420 | | -# NONE_A7-NEXT: Attribute { |
421 | | -# NONE_A7-NEXT: Tag: 14 |
422 | | -# NONE_A7-NEXT: Value: 3 |
423 | | -# NONE_A7-NEXT: TagName: atomic_abi |
424 | | -# NONE_A7-NEXT: Description: Atomic ABI is 3 |
425 | | -# NONE_A7-NEXT: } |
426 | | -# NONE_A7-NEXT: Attribute { |
427 | | -# NONE_A7-NEXT: Tag: 4 |
428 | | -# NONE_A7-NEXT: Value: 32 |
429 | | -# NONE_A7-NEXT: TagName: stack_align |
430 | | -# NONE_A7-NEXT: Description: Stack alignment is 32-bytes |
431 | | -# NONE_A7-NEXT: } |
432 | | -# NONE_A7-NEXT: } |
433 | | -# NONE_A7-NEXT: } |
434 | | -# NONE_A7-NEXT: } |
435 | | - |
436 | | - |
437 | | -# UNKNOWN_A7: BuildAttributes { |
438 | | -# UNKNOWN_A7-NEXT: FormatVersion: 0x41 |
439 | | -# UNKNOWN_A7-NEXT: Section 1 { |
440 | | -# UNKNOWN_A7-NEXT: SectionLength: 17 |
441 | | -# UNKNOWN_A7-NEXT: Vendor: riscv |
442 | | -# UNKNOWN_A7-NEXT: Tag: Tag_File (0x1) |
443 | | -# UNKNOWN_A7-NEXT: Size: 7 |
444 | | -# UNKNOWN_A7-NEXT: FileAttributes { |
445 | | -# UNKNOWN_A7-NEXT: Attribute { |
446 | | -# UNKNOWN_A7-NEXT: Tag: 14 |
447 | | -# UNKNOWN_A7-NEXT: Value: 3 |
448 | | -# UNKNOWN_A7-NEXT: TagName: atomic_abi |
449 | | -# UNKNOWN_A7-NEXT: Description: Atomic ABI is 3 |
450 | | -# UNKNOWN_A7-NEXT: } |
451 | | -# UNKNOWN_A7-NEXT: } |
452 | | -# UNKNOWN_A7-NEXT: } |
453 | | -# UNKNOWN_A7-NEXT: } |
454 | | - |
455 | | -# A6C_A6S: BuildAttributes { |
456 | | -# A6C_A6S-NEXT: FormatVersion: 0x41 |
457 | | -# A6C_A6S-NEXT: Section 1 { |
458 | | -# A6C_A6S-NEXT: SectionLength: 17 |
459 | | -# A6C_A6S-NEXT: Vendor: riscv |
460 | | -# A6C_A6S-NEXT: Tag: Tag_File (0x1) |
461 | | -# A6C_A6S-NEXT: Size: 7 |
462 | | -# A6C_A6S-NEXT: FileAttributes { |
463 | | -# A6C_A6S-NEXT: Attribute { |
464 | | -# A6C_A6S-NEXT: Tag: 14 |
465 | | -# A6C_A6S-NEXT: Value: 1 |
466 | | -# A6C_A6S-NEXT: TagName: atomic_abi |
467 | | -# A6C_A6S-NEXT: Description: Atomic ABI is 1 |
468 | | -# A6C_A6S-NEXT: } |
469 | | -# A6C_A6S-NEXT: } |
470 | | -# A6C_A6S-NEXT: } |
471 | | -# A6C_A6S-NEXT: } |
472 | | - |
473 | | -# A6S_A7: BuildAttributes { |
474 | | -# A6S_A7-NEXT: FormatVersion: 0x41 |
475 | | -# A6S_A7-NEXT: Section 1 { |
476 | | -# A6S_A7-NEXT: SectionLength: 17 |
477 | | -# A6S_A7-NEXT: Vendor: riscv |
478 | | -# A6S_A7-NEXT: Tag: Tag_File (0x1) |
479 | | -# A6S_A7-NEXT: Size: 7 |
480 | | -# A6S_A7-NEXT: FileAttributes { |
481 | | -# A6S_A7-NEXT: Attribute { |
482 | | -# A6S_A7-NEXT: Tag: 14 |
483 | | -# A6S_A7-NEXT: Value: 3 |
484 | | -# A6S_A7-NEXT: TagName: atomic_abi |
485 | | -# A6S_A7-NEXT: Description: Atomic ABI is 3 |
486 | | -# A6S_A7-NEXT: } |
487 | | -# A6S_A7-NEXT: } |
488 | | -# A6S_A7-NEXT: } |
489 | | -# A6S_A7-NEXT: } |
490 | | - |
491 | 289 | #--- unknown13.s |
492 | 290 | .attribute 13, "0" |
493 | 291 | #--- unknown13a.s |
|
0 commit comments