brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.1 KiB · c666606 Raw
510 lines · plain
1# REQUIRES: riscv2 3# RUN: rm -rf %t && split-file %s %t && cd %t4# RUN: llvm-mc -filetype=obj -triple=riscv64 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=riscv64 b.s -o b.o13# RUN: llvm-mc -filetype=obj -triple=riscv64 c.s -o c.o14# RUN: ld.lld a.o b.o c.o -o out215# RUN: llvm-readobj --arch-specific out2 | FileCheck %s --check-prefix=CHECK216 17# RUN: llvm-mc -filetype=obj -triple=riscv64 unrecognized_ext1.s -o unrecognized_ext1.o18# RUN: ld.lld -e 0 unrecognized_ext1.o -o unrecognized_ext1 2>&1 | count 019# RUN: llvm-readobj --arch-specific unrecognized_ext1 | FileCheck %s --check-prefix=UNRECOGNIZED_EXT120 21# RUN: llvm-mc -filetype=obj -triple=riscv64 unrecognized_ext2.s -o unrecognized_ext2.o22# RUN: ld.lld -e 0 unrecognized_ext2.o -o unrecognized_ext2 2>&1 | count 023# RUN: llvm-readobj --arch-specific unrecognized_ext2 | FileCheck %s --check-prefix=UNRECOGNIZED_EXT224 25# RUN: llvm-mc -filetype=obj -triple=riscv64 unrecognized_version.s -o unrecognized_version.o26# RUN: ld.lld -e 0 unrecognized_version.o -o unrecognized_version 2>&1 | count 027# RUN: llvm-readobj --arch-specific unrecognized_version | FileCheck %s --check-prefix=UNRECOGNIZED_VERSION28 29# RUN: llvm-mc -filetype=obj -triple=riscv64 merge_version_test_input.s -o merge_version_test_input.o30# RUN: ld.lld -e 0 unrecognized_version.o merge_version_test_input.o -o out3 2>&1 | count 031# RUN: llvm-readobj --arch-specific out3 | FileCheck %s --check-prefix=CHECK332 33# RUN: llvm-mc -filetype=obj -triple=riscv64 invalid_arch1.s -o invalid_arch1.o34# RUN: not ld.lld invalid_arch1.o 2>&1 | FileCheck %s --check-prefix=INVALID_ARCH1 --implicit-check-not=error:35# INVALID_ARCH1: error: invalid_arch1.o:(.riscv.attributes): rv64i2: extension lacks version in expected format36 37## A zero value attribute is not printed.38# RUN: llvm-mc -filetype=obj -triple=riscv64 unaligned_access_0.s -o unaligned_access_0.o39# RUN: ld.lld -e 0 --fatal-warnings a.o unaligned_access_0.o -o unaligned_access_040# RUN: llvm-readobj -A unaligned_access_0 | FileCheck /dev/null --implicit-check-not='TagName: unaligned_access'41 42## Differing stack_align values lead to an error.43# RUN: llvm-mc -filetype=obj -triple=riscv64 diff_stack_align.s -o diff_stack_align.o44# RUN: not ld.lld a.o b.o c.o diff_stack_align.o 2>&1 | FileCheck %s --check-prefix=STACK_ALIGN --implicit-check-not=error:45# STACK_ALIGN: error: diff_stack_align.o:(.riscv.attributes) has stack_align=32 but a.o:(.riscv.attributes) has stack_align=1646 47## RISC-V tag merging for atomic_abi values A6C and A7 lead to an error.48# RUN: llvm-mc -filetype=obj -triple=riscv64  atomic_abi_A6C.s -o atomic_abi_A6C.o49# RUN: llvm-mc -filetype=obj -triple=riscv64  atomic_abi_A7.s -o atomic_abi_A7.o50# RUN: not ld.lld atomic_abi_A6C.o atomic_abi_A7.o 2>&1 | FileCheck %s --check-prefix=ATOMIC_ABI_ERROR --implicit-check-not=error:51# ATOMIC_ABI_ERROR: error: atomic abi mismatch for .riscv.attributes52# ATOMIC_ABI_ERROR-NEXT: >>> atomic_abi_A6C.o:(.riscv.attributes): atomic_abi=153# ATOMIC_ABI_ERROR-NEXT: >>> atomic_abi_A7.o:(.riscv.attributes): atomic_abi=354 55## RISC-V tag merging for atomic_abi values A6C and invalid lead to an error.56# RUN: llvm-mc -filetype=obj -triple=riscv64  atomic_abi_invalid.s -o atomic_abi_invalid.o57# RUN: not ld.lld atomic_abi_A6C.o atomic_abi_invalid.o 2>&1 | FileCheck %s --check-prefix=ATOMIC_ABI_INVALID --implicit-check-not=error:58# ATOMIC_ABI_INVALID: error: unknown atomic abi for .riscv.attributes59# ATOMIC_ABI_INVALID-NEXT: >>> atomic_abi_invalid.o:(.riscv.attributes): atomic_abi=4260 61# RUN: llvm-mc -filetype=obj -triple=riscv64  atomic_abi_A6S.s -o atomic_abi_A6S.o62# RUN: ld.lld atomic_abi_A6S.o atomic_abi_A6C.o -o atomic_abi_A6C_A6S63# RUN: llvm-readobj -A atomic_abi_A6C_A6S | FileCheck %s --check-prefix=A6C_A6S64 65# RUN: ld.lld atomic_abi_A6S.o atomic_abi_A7.o -o atomic_abi_A6S_A766# RUN: llvm-readobj -A atomic_abi_A6S_A7 | FileCheck %s --check-prefix=A6S_A767 68# RUN: llvm-mc -filetype=obj -triple=riscv64  atomic_abi_unknown.s -o atomic_abi_unknown.o69# RUN: ld.lld atomic_abi_unknown.o atomic_abi_A6C.o -o atomic_abi_A6C_unknown70# RUN: llvm-readobj -A atomic_abi_A6C_unknown | FileCheck %s --check-prefixes=UNKNOWN_A6C71 72# RUN: ld.lld atomic_abi_unknown.o diff_stack_align.o -o atomic_abi_none_unknown73# RUN: llvm-readobj -A atomic_abi_none_unknown | FileCheck %s --check-prefixes=UNKNOWN_NONE74 75# RUN: ld.lld diff_stack_align.o atomic_abi_A6C.o -o atomic_abi_A6C_none76# RUN: llvm-readobj -A atomic_abi_A6C_none | FileCheck %s --check-prefixes=NONE_A6C77 78# RUN: ld.lld atomic_abi_unknown.o atomic_abi_A6S.o -o atomic_abi_A6S_unknown79# RUN: llvm-readobj -A atomic_abi_A6S_unknown | FileCheck %s --check-prefix=UNKNOWN_A6S80 81# RUN: ld.lld atomic_abi_unknown.o atomic_abi_A7.o -o atomic_abi_A7_unknown82# RUN: llvm-readobj -A atomic_abi_A7_unknown | FileCheck %s --check-prefix=UNKNOWN_A783 84# RUN: ld.lld diff_stack_align.o atomic_abi_A7.o -o atomic_abi_A7_none85# RUN: llvm-readobj -A atomic_abi_A7_none | FileCheck %s --check-prefix=NONE_A786 87## The deprecated priv_spec is not handled as GNU ld does.88## Differing priv_spec attributes lead to an absent attribute.89# RUN: llvm-mc -filetype=obj -triple=riscv64 diff_priv_spec.s -o diff_priv_spec.o90# RUN: ld.lld -e 0 --fatal-warnings a.o b.o c.o diff_priv_spec.o -o diff_priv_spec91# RUN: llvm-readobj -A diff_priv_spec | FileCheck /dev/null --implicit-check-not='TagName: priv_spec'92 93## Unknown tags currently lead to warnings.94# RUN: llvm-mc -filetype=obj -triple=riscv64 unknown13.s -o unknown13.o95# RUN: llvm-mc -filetype=obj -triple=riscv64 unknown13a.s -o unknown13a.o96# RUN: ld.lld -e 0 unknown13.o unknown13.o unknown13a.o -o unknown13 2>&1 | FileCheck %s --check-prefix=UNKNOWN13 --implicit-check-not=warning:97# UNKNOWN13-COUNT-2: warning: unknown13.o:(.riscv.attributes): invalid tag 0xd at offset 0x1098# UNKNOWN13:         warning: unknown13a.o:(.riscv.attributes): invalid tag 0xd at offset 0x1099 100# RUN: llvm-mc -filetype=obj -triple=riscv64 unknown22.s -o unknown22.o101# RUN: llvm-mc -filetype=obj -triple=riscv64 unknown22a.s -o unknown22a.o102# RUN: ld.lld -e 0 unknown22.o unknown22.o unknown22a.o -o unknown22 2>&1 | FileCheck %s --check-prefix=UNKNOWN22 --implicit-check-not=warning:103# UNKNOWN22-COUNT-2: warning: unknown22.o:(.riscv.attributes): invalid tag 0x16 at offset 0x10104# UNKNOWN22:         warning: unknown22a.o:(.riscv.attributes): invalid tag 0x16 at offset 0x10105 106# HDR:      Name              Type             Address          Off    Size   ES Flg Lk Inf Al107# HDR:      .riscv.attributes RISCV_ATTRIBUTES 0000000000000000 000158 000068 00      0   0  1{{$}}108 109# HDR:      Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align110# HDR:      LOAD           0x000000 0x0000000000010000 0x0000000000010000 0x000158 0x000158 R   0x1000111# HDR-NEXT: GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0112# HDR-NEXT: ATTRIBUTES     0x000158 0x0000000000000000 0x0000000000000000 0x000068 0x000068 R   0x1{{$}}113 114# CHECK:      BuildAttributes {115# CHECK-NEXT:   FormatVersion: 0x41116# CHECK-NEXT:   Section 1 {117# CHECK-NEXT:     SectionLength: 103118# CHECK-NEXT:     Vendor: riscv119# CHECK-NEXT:     Tag: Tag_File (0x1)120# CHECK-NEXT:     Size: 93121# CHECK-NEXT:     FileAttributes {122# CHECK-NEXT:       Attribute {123# CHECK-NEXT:         Tag: 4124# CHECK-NEXT:         Value: 16125# CHECK-NEXT:         TagName: stack_align126# CHECK-NEXT:         Description: Stack alignment is 16-bytes127# CHECK-NEXT:       }128# CHECK-NEXT:       Attribute {129# CHECK-NEXT:         Tag: 5130# CHECK-NEXT:         TagName: arch131# CHECK-NEXT:         Value: rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0_zcd1p0{{$}}132# CHECK-NEXT:       }133# CHECK-NEXT:     }134# CHECK-NEXT:   }135# CHECK-NEXT: }136 137# CHECK2:      BuildAttributes {138# CHECK2-NEXT:   FormatVersion: 0x41139# CHECK2-NEXT:   Section 1 {140# CHECK2-NEXT:     SectionLength: 146141# CHECK2-NEXT:     Vendor: riscv142# CHECK2-NEXT:     Tag: Tag_File (0x1)143# CHECK2-NEXT:     Size: 136144# CHECK2-NEXT:     FileAttributes {145# CHECK2-NEXT:       Attribute {146# CHECK2-NEXT:         Tag: 4147# CHECK2-NEXT:         Value: 16148# CHECK2-NEXT:         TagName: stack_align149# CHECK2-NEXT:         Description: Stack alignment is 16-bytes150# CHECK2-NEXT:       }151# CHECK2-NEXT:       Attribute {152# CHECK2-NEXT:         Tag: 6153# CHECK2-NEXT:         Value: 1154# CHECK2-NEXT:         TagName: unaligned_access155# CHECK2-NEXT:         Description: Unaligned access156# CHECK2-NEXT:       }157# CHECK2-NEXT:       Attribute {158# CHECK2-NEXT:         Tag: 8159# CHECK2-NEXT:         TagName: priv_spec160# CHECK2-NEXT:         Value: 2161# CHECK2-NEXT:       }162# CHECK2-NEXT:       Attribute {163# CHECK2-NEXT:         Tag: 10164# CHECK2-NEXT:         TagName: priv_spec_minor165# CHECK2-NEXT:         Value: 2166# CHECK2-NEXT:       }167# CHECK2-NEXT:       Attribute {168# CHECK2-NEXT:         Tag: 5169# CHECK2-NEXT:         TagName: arch170# CHECK2-NEXT:         Value: rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0_zcd1p0_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0{{$}}171# CHECK2-NEXT:       }172# CHECK2-NEXT:     }173# CHECK2-NEXT:   }174# CHECK2-NEXT: }175 176# CHECK3:      BuildAttributes {177# CHECK3-NEXT:   FormatVersion: 0x41178# CHECK3-NEXT:   Section 1 {179# CHECK3-NEXT:     SectionLength: 26180# CHECK3-NEXT:     Vendor: riscv181# CHECK3-NEXT:     Tag: Tag_File (0x1)182# CHECK3-NEXT:     Size: 16183# CHECK3-NEXT:     FileAttributes {184# CHECK3-NEXT:       Attribute {185# CHECK3-NEXT:         Tag: 5186# CHECK3-NEXT:         TagName: arch187# CHECK3-NEXT:         Value: rv64i99p0{{$}}188# CHECK3-NEXT:       }189# CHECK3-NEXT:     }190# CHECK3-NEXT:   }191# CHECK3-NEXT: }192 193#--- a.s194.attribute stack_align, 16195.attribute arch, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zmmul1p0"196.attribute unaligned_access, 0197 198#--- b.s199.attribute stack_align, 16200.attribute arch, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zmmul1p0"201.attribute priv_spec, 2202.attribute priv_spec_minor, 2203 204#--- c.s205.attribute stack_align, 16206.attribute arch, "rv64i2p1_f2p2_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0"207.attribute unaligned_access, 1208.attribute priv_spec, 2209.attribute priv_spec_minor, 2210 211#--- unrecognized_ext1.s212# UNRECOGNIZED_EXT1:      BuildAttributes {213# UNRECOGNIZED_EXT1-NEXT:   FormatVersion: 0x41214# UNRECOGNIZED_EXT1-NEXT:   Section 1 {215# UNRECOGNIZED_EXT1-NEXT:     SectionLength: 30216# UNRECOGNIZED_EXT1-NEXT:     Vendor: riscv217# UNRECOGNIZED_EXT1-NEXT:     Tag: Tag_File (0x1)218# UNRECOGNIZED_EXT1-NEXT:     Size: 20219# UNRECOGNIZED_EXT1-NEXT:     FileAttributes {220# UNRECOGNIZED_EXT1-NEXT:       Attribute {221# UNRECOGNIZED_EXT1-NEXT:         Tag: 5222# UNRECOGNIZED_EXT1-NEXT:         TagName: arch223# UNRECOGNIZED_EXT1-NEXT:         Value: rv64i2p1_y2p0{{$}}224# UNRECOGNIZED_EXT1-NEXT:       }225# UNRECOGNIZED_EXT1-NEXT:     }226# UNRECOGNIZED_EXT1-NEXT:   }227# UNRECOGNIZED_EXT1-NEXT: }228.section .riscv.attributes,"",@0x70000003229.byte 0x41230.long .Lend-.riscv.attributes-1231.asciz "riscv"  # vendor232.Lbegin:233.byte 1  # Tag_File234.long .Lend-.Lbegin235.byte 5  # Tag_RISCV_arch236.asciz "rv64i2p1_y2p0"237.Lend:238 239#--- unrecognized_ext2.s240# UNRECOGNIZED_EXT2:      BuildAttributes {241# UNRECOGNIZED_EXT2-NEXT:   FormatVersion: 0x41242# UNRECOGNIZED_EXT2-NEXT:   Section 1 {243# UNRECOGNIZED_EXT2-NEXT:     SectionLength: 36244# UNRECOGNIZED_EXT2-NEXT:     Vendor: riscv245# UNRECOGNIZED_EXT2-NEXT:     Tag: Tag_File (0x1)246# UNRECOGNIZED_EXT2-NEXT:     Size: 26247# UNRECOGNIZED_EXT2-NEXT:     FileAttributes {248# UNRECOGNIZED_EXT2-NEXT:       Attribute {249# UNRECOGNIZED_EXT2-NEXT:         Tag: 5250# UNRECOGNIZED_EXT2-NEXT:         TagName: arch251# UNRECOGNIZED_EXT2-NEXT:         Value: rv64i2p1_zmadeup1p0{{$}}252# UNRECOGNIZED_EXT2-NEXT:       }253# UNRECOGNIZED_EXT2-NEXT:     }254# UNRECOGNIZED_EXT2-NEXT:   }255# UNRECOGNIZED_EXT2-NEXT: }256.section .riscv.attributes,"",@0x70000003257.byte 0x41258.long .Lend-.riscv.attributes-1259.asciz "riscv"  # vendor260.Lbegin:261.byte 1  # Tag_File262.long .Lend-.Lbegin263.byte 5  # Tag_RISCV_arch264.asciz "rv64i2p1_zmadeup1p0"265.Lend:266 267#--- unrecognized_version.s268# UNRECOGNIZED_VERSION:      BuildAttributes {269# UNRECOGNIZED_VERSION-NEXT:   FormatVersion: 0x41270# UNRECOGNIZED_VERSION-NEXT:   Section 1 {271# UNRECOGNIZED_VERSION-NEXT:     SectionLength: 26272# UNRECOGNIZED_VERSION-NEXT:     Vendor: riscv273# UNRECOGNIZED_VERSION-NEXT:     Tag: Tag_File (0x1)274# UNRECOGNIZED_VERSION-NEXT:     Size: 16275# UNRECOGNIZED_VERSION-NEXT:     FileAttributes {276# UNRECOGNIZED_VERSION-NEXT:       Attribute {277# UNRECOGNIZED_VERSION-NEXT:         Tag: 5278# UNRECOGNIZED_VERSION-NEXT:         TagName: arch279# UNRECOGNIZED_VERSION-NEXT:         Value: rv64i99p0280# UNRECOGNIZED_VERSION-NEXT:       }281# UNRECOGNIZED_VERSION-NEXT:     }282# UNRECOGNIZED_VERSION-NEXT:   }283# UNRECOGNIZED_VERSION-NEXT: }284.section .riscv.attributes,"",@0x70000003285.byte 0x41286.long .Lend-.riscv.attributes-1287.asciz "riscv"  # vendor288.Lbegin:289.byte 1  # Tag_File290.long .Lend-.Lbegin291.byte 5  # Tag_RISCV_arch292.asciz "rv64i99p0"293.Lend:294 295#--- merge_version_test_input.s296.section .riscv.attributes,"",@0x70000003297.byte 0x41298.long .Lend-.riscv.attributes-1299.asciz "riscv"  # vendor300.Lbegin:301.byte 1  # Tag_File302.long .Lend-.Lbegin303.byte 5  # Tag_RISCV_arch304.asciz "rv64i2p1"305.Lend:306 307#--- invalid_arch1.s308.section .riscv.attributes,"",@0x70000003309.byte 0x41310.long .Lend-.riscv.attributes-1311.asciz "riscv"  # vendor312.Lbegin:313.byte 1  # Tag_File314.long .Lend-.Lbegin315.byte 5  # Tag_RISCV_arch316.asciz "rv64i2"317.Lend:318 319#--- unaligned_access_0.s320.attribute unaligned_access, 0321 322#--- diff_stack_align.s323.attribute stack_align, 32324 325#--- diff_priv_spec.s326.attribute priv_spec, 3327.attribute priv_spec_minor, 3328 329#--- atomic_abi_unknown.s330.attribute atomic_abi, 0331 332#--- atomic_abi_A6C.s333.attribute atomic_abi, 1334 335#--- atomic_abi_A6S.s336.attribute atomic_abi, 2337 338#--- atomic_abi_A7.s339.attribute atomic_abi, 3340 341#--- atomic_abi_invalid.s342.attribute atomic_abi, 42343 344#      UNKNOWN_NONE: BuildAttributes {345# UNKNOWN_NONE-NEXT:   FormatVersion: 0x41346# UNKNOWN_NONE-NEXT:   Section 1 {347# UNKNOWN_NONE-NEXT:     SectionLength: 17348# UNKNOWN_NONE-NEXT:     Vendor: riscv349# UNKNOWN_NONE-NEXT:     Tag: Tag_File (0x1)350# UNKNOWN_NONE-NEXT:     Size: 7351# UNKNOWN_NONE-NEXT:     FileAttributes {352# UNKNOWN_NONE-NEXT:       Attribute {353# UNKNOWN_NONE-NEXT:         Tag: 4354# UNKNOWN_NONE-NEXT:         Value: 32355# UNKNOWN_NONE-NEXT:         TagName: stack_align356# UNKNOWN_NONE-NEXT:         Description: Stack alignment is 32-bytes357# UNKNOWN_NONE-NEXT:       }358# UNKNOWN_NONE-NEXT:     }359# UNKNOWN_NONE-NEXT:   }360# UNKNOWN_NONE-NEXT: }361 362#      NONE_A6C: BuildAttributes {363# NONE_A6C-NEXT:   FormatVersion: 0x41364# NONE_A6C-NEXT:   Section 1 {365# NONE_A6C-NEXT:     SectionLength: 19366# NONE_A6C-NEXT:     Vendor: riscv367# NONE_A6C-NEXT:     Tag: Tag_File (0x1)368# NONE_A6C-NEXT:     Size: 9369# NONE_A6C-NEXT:     FileAttributes {370# NONE_A6C-NEXT:       Attribute {371# NONE_A6C-NEXT:         Tag: 14372# NONE_A6C-NEXT:         Value: 1373# NONE_A6C-NEXT:         TagName: atomic_abi374# NONE_A6C-NEXT:         Description: Atomic ABI is 1375# NONE_A6C-NEXT:       }376# NONE_A6C-NEXT:       Attribute {377# NONE_A6C-NEXT:         Tag: 4378# NONE_A6C-NEXT:         Value: 32379# NONE_A6C-NEXT:         TagName: stack_align380# NONE_A6C-NEXT:         Description: Stack alignment is 32-bytes381# NONE_A6C-NEXT:       }382# NONE_A6C-NEXT:     }383# NONE_A6C-NEXT:   }384# NONE_A6C-NEXT: }385 386#      UNKNOWN_A6C: BuildAttributes {387# UNKNOWN_A6C-NEXT:   FormatVersion: 0x41388# UNKNOWN_A6C-NEXT:   Section 1 {389# UNKNOWN_A6C-NEXT:     SectionLength: 17390# UNKNOWN_A6C-NEXT:     Vendor: riscv391# UNKNOWN_A6C-NEXT:     Tag: Tag_File (0x1)392# UNKNOWN_A6C-NEXT:     Size: 7393# UNKNOWN_A6C-NEXT:     FileAttributes {394# UNKNOWN_A6C-NEXT:       Attribute {395# UNKNOWN_A6C-NEXT:         Tag: 14396# UNKNOWN_A6C-NEXT:         Value: 1397# UNKNOWN_A6C-NEXT:         TagName: atomic_abi398# UNKNOWN_A6C-NEXT:         Description: Atomic ABI is 1399# UNKNOWN_A6C-NEXT:       }400# UNKNOWN_A6C-NEXT:     }401# UNKNOWN_A6C-NEXT:   }402# UNKNOWN_A6C-NEXT: }403 404#      UNKNOWN_A6S: BuildAttributes {405# UNKNOWN_A6S-NEXT:   FormatVersion: 0x41406# UNKNOWN_A6S-NEXT:   Section 1 {407# UNKNOWN_A6S-NEXT:     SectionLength:408# UNKNOWN_A6S-NEXT:     Vendor: riscv409# UNKNOWN_A6S-NEXT:     Tag: Tag_File (0x1)410# UNKNOWN_A6S-NEXT:     Size: 7411# UNKNOWN_A6S-NEXT:     FileAttributes {412# UNKNOWN_A6S-NEXT:       Attribute {413# UNKNOWN_A6S-NEXT:         Tag: 14414# UNKNOWN_A6S-NEXT:         Value: 2415# UNKNOWN_A6S-NEXT:         TagName: atomic_abi416# UNKNOWN_A6S-NEXT:         Description: Atomic ABI is 2417# UNKNOWN_A6S-NEXT:       }418# UNKNOWN_A6S-NEXT:     }419# UNKNOWN_A6S-NEXT:   }420# UNKNOWN_A6S-NEXT: }421 422#      NONE_A7: BuildAttributes {423# NONE_A7-NEXT:   FormatVersion: 0x41424# NONE_A7-NEXT:   Section 1 {425# NONE_A7-NEXT:     SectionLength: 19426# NONE_A7-NEXT:     Vendor: riscv427# NONE_A7-NEXT:     Tag: Tag_File (0x1)428# NONE_A7-NEXT:     Size: 9429# NONE_A7-NEXT:     FileAttributes {430# NONE_A7-NEXT:       Attribute {431# NONE_A7-NEXT:         Tag: 14432# NONE_A7-NEXT:         Value: 3433# NONE_A7-NEXT:         TagName: atomic_abi434# NONE_A7-NEXT:         Description: Atomic ABI is 3435# NONE_A7-NEXT:       }436# NONE_A7-NEXT:       Attribute {437# NONE_A7-NEXT:         Tag: 4438# NONE_A7-NEXT:         Value: 32439# NONE_A7-NEXT:         TagName: stack_align440# NONE_A7-NEXT:         Description: Stack alignment is 32-bytes441# NONE_A7-NEXT:       }442# NONE_A7-NEXT:     }443# NONE_A7-NEXT:   }444# NONE_A7-NEXT: }445 446 447#      UNKNOWN_A7: BuildAttributes {448# UNKNOWN_A7-NEXT:   FormatVersion: 0x41449# UNKNOWN_A7-NEXT:   Section 1 {450# UNKNOWN_A7-NEXT:     SectionLength: 17451# UNKNOWN_A7-NEXT:     Vendor: riscv452# UNKNOWN_A7-NEXT:     Tag: Tag_File (0x1)453# UNKNOWN_A7-NEXT:     Size: 7454# UNKNOWN_A7-NEXT:     FileAttributes {455# UNKNOWN_A7-NEXT:       Attribute {456# UNKNOWN_A7-NEXT:         Tag: 14457# UNKNOWN_A7-NEXT:         Value: 3458# UNKNOWN_A7-NEXT:         TagName: atomic_abi459# UNKNOWN_A7-NEXT:         Description: Atomic ABI is 3460# UNKNOWN_A7-NEXT:       }461# UNKNOWN_A7-NEXT:     }462# UNKNOWN_A7-NEXT:   }463# UNKNOWN_A7-NEXT: }464 465#      A6C_A6S: BuildAttributes {466# A6C_A6S-NEXT:   FormatVersion: 0x41467# A6C_A6S-NEXT:   Section 1 {468# A6C_A6S-NEXT:     SectionLength: 17469# A6C_A6S-NEXT:     Vendor: riscv470# A6C_A6S-NEXT:     Tag: Tag_File (0x1)471# A6C_A6S-NEXT:     Size: 7472# A6C_A6S-NEXT:     FileAttributes {473# A6C_A6S-NEXT:       Attribute {474# A6C_A6S-NEXT:         Tag: 14475# A6C_A6S-NEXT:         Value: 1476# A6C_A6S-NEXT:         TagName: atomic_abi477# A6C_A6S-NEXT:         Description: Atomic ABI is 1478# A6C_A6S-NEXT:       }479# A6C_A6S-NEXT:     }480# A6C_A6S-NEXT:   }481# A6C_A6S-NEXT: }482 483#      A6S_A7: BuildAttributes {484# A6S_A7-NEXT:   FormatVersion: 0x41485# A6S_A7-NEXT:   Section 1 {486# A6S_A7-NEXT:     SectionLength: 17487# A6S_A7-NEXT:     Vendor: riscv488# A6S_A7-NEXT:     Tag: Tag_File (0x1)489# A6S_A7-NEXT:     Size: 7490# A6S_A7-NEXT:     FileAttributes {491# A6S_A7-NEXT:       Attribute {492# A6S_A7-NEXT:         Tag: 14493# A6S_A7-NEXT:         Value: 3494# A6S_A7-NEXT:         TagName: atomic_abi495# A6S_A7-NEXT:         Description: Atomic ABI is 3496# A6S_A7-NEXT:       }497# A6S_A7-NEXT:     }498# A6S_A7-NEXT:   }499# A6S_A7-NEXT: }500 501#--- unknown13.s502.attribute 13, "0"503#--- unknown13a.s504.attribute 13, "1"505 506#--- unknown22.s507.attribute 22, 1508#--- unknown22a.s509.attribute 22, 2510