| # REQUIRES: hexagon |
| |
| # RUN: rm -rf %t && split-file %s %t && cd %t |
| # RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf a.s -o a.o |
| # RUN: ld.lld -e 0 a.o -o out 2>&1 | count 0 |
| # RUN: llvm-readelf -S -l --arch-specific out | FileCheck %s --check-prefixes=HDR,CHECK |
| # RUN: ld.lld -e 0 a.o a.o -o out1 2>&1 | count 0 |
| # RUN: llvm-readobj --arch-specific out1 | FileCheck %s |
| # RUN: ld.lld -r a.o a.o -o out1 2>&1 | count 0 |
| # RUN: llvm-readobj --arch-specific out1 | FileCheck %s |
| |
| # RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf b.s -o b.o |
| # RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf c.s -o c.o |
| # RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf d.s -o d.o |
| # RUN: ld.lld a.o b.o c.o -o out2 |
| # RUN: llvm-readobj --arch-specific out2 | FileCheck %s --check-prefix=CHECK2 |
| # RUN: ld.lld a.o b.o c.o d.o -o out3 |
| # RUN: llvm-readobj --arch-specific out3 | FileCheck %s --check-prefix=CHECK3 |
| |
| # HDR: Name Type Address Off Size ES Flg Lk Inf Al |
| # HDR: .hexagon.attributes HEXAGON_ATTRIBUTES 00000000 {{.*}} {{.*}} 00 0 0 1{{$}} |
| |
| # HDR: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align |
| # HDR: LOAD {{.*}} |
| # HDR-NEXT: GNU_STACK {{.*}} |
| |
| # CHECK: BuildAttributes { |
| # CHECK-NEXT: FormatVersion: 0x41 |
| # CHECK-NEXT: Section 1 { |
| # CHECK-NEXT: SectionLength: 19 |
| # CHECK-NEXT: Vendor: hexagon |
| # CHECK-NEXT: Tag: Tag_File (0x1) |
| # CHECK-NEXT: Size: 7 |
| # CHECK-NEXT: FileAttributes { |
| # CHECK-NEXT: Attribute { |
| # CHECK-NEXT: Tag: 4 |
| # CHECK-NEXT: TagName: arch |
| # CHECK-NEXT: Value: 68{{$}} |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| |
| # CHECK2: BuildAttributes { |
| # CHECK2-NEXT: FormatVersion: 0x41 |
| # CHECK2-NEXT: Section 1 { |
| # CHECK2-NEXT: SectionLength: 21 |
| # CHECK2-NEXT: Vendor: hexagon |
| # CHECK2-NEXT: Tag: Tag_File (0x1) |
| # CHECK2-NEXT: Size: 9 |
| # CHECK2-NEXT: FileAttributes { |
| # CHECK2-NEXT: Attribute { |
| # CHECK2-NEXT: Tag: 4 |
| # CHECK2-NEXT: TagName: arch |
| # CHECK2-NEXT: Value: 68{{$}} |
| # CHECK2-NEXT: } |
| # CHECK2-NEXT: Attribute { |
| # CHECK2-NEXT: Tag: 5 |
| # CHECK2-NEXT: TagName: hvx_arch |
| # CHECK2-NEXT: Value: 68{{$}} |
| # CHECK2-NEXT: } |
| # CHECK2-NEXT: } |
| # CHECK2-NEXT: } |
| # CHECK2-NEXT: } |
| |
| # CHECK3: BuildAttributes { |
| # CHECK3-NEXT: FormatVersion: 0x41 |
| # CHECK3-NEXT: Section 1 { |
| # CHECK3-NEXT: SectionLength: 25 |
| # CHECK3-NEXT: Vendor: hexagon |
| # CHECK3-NEXT: Tag: Tag_File (0x1) |
| # CHECK3-NEXT: Size: 13 |
| # CHECK3-NEXT: FileAttributes { |
| # CHECK3-NEXT: Attribute { |
| # CHECK3-NEXT: Tag: 7 |
| # CHECK3-NEXT: TagName: hvx_qfloat |
| # CHECK3-NEXT: Value: 68{{$}} |
| # CHECK3-NEXT: } |
| # CHECK3-NEXT: Attribute { |
| # CHECK3-NEXT: Tag: 9 |
| # CHECK3-NEXT: TagName: audio |
| # CHECK3-NEXT: Value: 68{{$}} |
| # CHECK3-NEXT: } |
| # CHECK3-NEXT: Attribute { |
| # CHECK3-NEXT: Tag: 4 |
| # CHECK3-NEXT: TagName: arch |
| # CHECK3-NEXT: Value: 68{{$}} |
| # CHECK3-NEXT: } |
| # CHECK3-NEXT: Attribute { |
| # CHECK3-NEXT: Tag: 5 |
| # CHECK3-NEXT: TagName: hvx_arch |
| # CHECK3-NEXT: Value: 68{{$}} |
| # CHECK3-NEXT: } |
| # CHECK3-NEXT: } |
| # CHECK3-NEXT: } |
| # CHECK3-NEXT: } |
| |
| #--- a.s |
| .section .hexagon.attributes,"",@0x70000003 |
| .byte 0x41 |
| .long .Lend-.hexagon.attributes-1 |
| .asciz "hexagon" |
| .Lbegin: |
| .byte 1 |
| .long .Lend-.Lbegin |
| .byte 4 |
| .byte 68 |
| .Lend: |
| |
| #--- b.s |
| .section .hexagon.attributes,"",@0x70000003 |
| .byte 0x41 |
| .long .Lend1-.hexagon.attributes-1 |
| .asciz "hexagon" |
| .Lbegin1: |
| .byte 1 |
| .long .Lend1-.Lbegin1 |
| .byte 4 |
| .byte 68 |
| .Lend1: |
| |
| #--- c.s |
| .section .hexagon.attributes,"",@0x70000003 |
| .byte 0x41 |
| .long .Lend2-.hexagon.attributes-1 |
| .asciz "hexagon" |
| .Lbegin2: |
| .byte 1 |
| .long .Lend2-.Lbegin2 |
| .byte 4 |
| .byte 68 |
| .byte 5 |
| .byte 68 |
| .Lend2: |
| |
| #--- d.s |
| .section .hexagon.attributes,"",@0x70000003 |
| .byte 0x41 |
| .long .Lend3-.hexagon.attributes-1 |
| .asciz "hexagon" |
| .Lbegin3: |
| .byte 1 |
| .long .Lend3-.Lbegin3 |
| .byte 4 |
| .byte 68 |
| .byte 7 |
| .byte 68 |
| .byte 9 |
| .byte 68 |
| .Lend3: |