151 lines · plain
1# REQUIRES: hexagon2 3# RUN: rm -rf %t && split-file %s %t && cd %t4# RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf a.s -o a.o5# RUN: ld.lld -e 0 a.o -o out 2>&1 | count 06# RUN: llvm-readelf -S -l --arch-specific out | FileCheck %s --check-prefixes=HDR,CHECK7# RUN: ld.lld -e 0 a.o a.o -o out1 2>&1 | count 08# RUN: llvm-readobj --arch-specific out1 | FileCheck %s9# RUN: ld.lld -r a.o a.o -o out1 2>&1 | count 010# RUN: llvm-readobj --arch-specific out1 | FileCheck %s11 12# RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf b.s -o b.o13# RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf c.s -o c.o14# RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf d.s -o d.o15# RUN: ld.lld a.o b.o c.o -o out216# RUN: llvm-readobj --arch-specific out2 | FileCheck %s --check-prefix=CHECK217# RUN: ld.lld a.o b.o c.o d.o -o out318# RUN: llvm-readobj --arch-specific out3 | FileCheck %s --check-prefix=CHECK319 20# HDR: Name Type Address Off Size ES Flg Lk Inf Al21# HDR: .hexagon.attributes HEXAGON_ATTRIBUTES 00000000 {{.*}} {{.*}} 00 0 0 1{{$}}22 23# HDR: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align24# HDR: LOAD {{.*}}25# HDR-NEXT: GNU_STACK {{.*}}26 27# CHECK: BuildAttributes {28# CHECK-NEXT: FormatVersion: 0x4129# CHECK-NEXT: Section 1 {30# CHECK-NEXT: SectionLength: 1931# CHECK-NEXT: Vendor: hexagon32# CHECK-NEXT: Tag: Tag_File (0x1)33# CHECK-NEXT: Size: 734# CHECK-NEXT: FileAttributes {35# CHECK-NEXT: Attribute {36# CHECK-NEXT: Tag: 437# CHECK-NEXT: TagName: arch38# CHECK-NEXT: Value: 68{{$}}39# CHECK-NEXT: }40# CHECK-NEXT: }41# CHECK-NEXT: }42# CHECK-NEXT: }43 44# CHECK2: BuildAttributes {45# CHECK2-NEXT: FormatVersion: 0x4146# CHECK2-NEXT: Section 1 {47# CHECK2-NEXT: SectionLength: 2148# CHECK2-NEXT: Vendor: hexagon49# CHECK2-NEXT: Tag: Tag_File (0x1)50# CHECK2-NEXT: Size: 951# CHECK2-NEXT: FileAttributes {52# CHECK2-NEXT: Attribute {53# CHECK2-NEXT: Tag: 454# CHECK2-NEXT: TagName: arch55# CHECK2-NEXT: Value: 68{{$}}56# CHECK2-NEXT: }57# CHECK2-NEXT: Attribute {58# CHECK2-NEXT: Tag: 559# CHECK2-NEXT: TagName: hvx_arch60# CHECK2-NEXT: Value: 68{{$}}61# CHECK2-NEXT: }62# CHECK2-NEXT: }63# CHECK2-NEXT: }64# CHECK2-NEXT: }65 66# CHECK3: BuildAttributes {67# CHECK3-NEXT: FormatVersion: 0x4168# CHECK3-NEXT: Section 1 {69# CHECK3-NEXT: SectionLength: 2570# CHECK3-NEXT: Vendor: hexagon71# CHECK3-NEXT: Tag: Tag_File (0x1)72# CHECK3-NEXT: Size: 1373# CHECK3-NEXT: FileAttributes {74# CHECK3-NEXT: Attribute {75# CHECK3-NEXT: Tag: 776# CHECK3-NEXT: TagName: hvx_qfloat77# CHECK3-NEXT: Value: 68{{$}}78# CHECK3-NEXT: }79# CHECK3-NEXT: Attribute {80# CHECK3-NEXT: Tag: 981# CHECK3-NEXT: TagName: audio82# CHECK3-NEXT: Value: 68{{$}}83# CHECK3-NEXT: }84# CHECK3-NEXT: Attribute {85# CHECK3-NEXT: Tag: 486# CHECK3-NEXT: TagName: arch87# CHECK3-NEXT: Value: 68{{$}}88# CHECK3-NEXT: }89# CHECK3-NEXT: Attribute {90# CHECK3-NEXT: Tag: 591# CHECK3-NEXT: TagName: hvx_arch92# CHECK3-NEXT: Value: 68{{$}}93# CHECK3-NEXT: }94# CHECK3-NEXT: }95# CHECK3-NEXT: }96# CHECK3-NEXT: }97 98#--- a.s99.section .hexagon.attributes,"",@0x70000003100.byte 0x41101.long .Lend-.hexagon.attributes-1102.asciz "hexagon"103.Lbegin:104.byte 1105.long .Lend-.Lbegin106.byte 4107.byte 68108.Lend:109 110#--- b.s111.section .hexagon.attributes,"",@0x70000003112.byte 0x41113.long .Lend1-.hexagon.attributes-1114.asciz "hexagon"115.Lbegin1:116.byte 1117.long .Lend1-.Lbegin1118.byte 4119.byte 68120.Lend1:121 122#--- c.s123.section .hexagon.attributes,"",@0x70000003124.byte 0x41125.long .Lend2-.hexagon.attributes-1126.asciz "hexagon"127.Lbegin2:128.byte 1129.long .Lend2-.Lbegin2130.byte 4131.byte 68132.byte 5133.byte 68134.Lend2:135 136#--- d.s137.section .hexagon.attributes,"",@0x70000003138.byte 0x41139.long .Lend3-.hexagon.attributes-1140.asciz "hexagon"141.Lbegin3:142.byte 1143.long .Lend3-.Lbegin3144.byte 4145.byte 68146.byte 7147.byte 68148.byte 9149.byte 68150.Lend3:151