xref: /llvm-project/llvm/test/tools/llvm-objdump/ELF/RISCV/riscv-attributes.s (revision 91c6174ce35969d7f0d73c645fa47b813e0d99d3)
10ae8f5acSAlex Bradbury# RUN: rm -rf %t && split-file %s %t && cd %t
20ae8f5acSAlex Bradbury
30ae8f5acSAlex Bradbury# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+m,+f,+d,+v noncanonicalized_arch.s -o noncanonicalized_arch.o
4*91c6174cSAlex Bradbury# RUN: not llvm-objdump -d noncanonicalized_arch.o 2>&1 | FileCheck %s -DFILE=noncanonicalized_arch.o --check-prefix=NONCANON
50ae8f5acSAlex Bradbury
60ae8f5acSAlex Bradbury# RUN: llvm-mc -filetype=obj -triple=riscv64 invalid_arch.s -o invalid_arch.o
7*91c6174cSAlex Bradbury# RUN: not llvm-objdump -d invalid_arch.o 2>&1 | FileCheck %s -DFILE=invalid_arch.o --check-prefix=INVALID
80ae8f5acSAlex Bradbury
90ae8f5acSAlex Bradbury# RUN: llvm-mc -filetype=obj -triple=riscv32 unknown_i_version.s -o unknown_i_version.o
1006206588SAlex Bradbury# RUN: llvm-objdump -d unknown_i_version.o 2>&1 | FileCheck %s --check-prefix=UNKNOWN-I-VERSION
110ae8f5acSAlex Bradbury
120ae8f5acSAlex Bradbury# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+zicbom unknown_ext_version.s -o unknown_ext_version.o
130ae8f5acSAlex Bradbury# RUN: llvm-objdump -d unknown_ext_version.o 2>&1 | FileCheck %s --check-prefix=UNKNOWN-EXT-VERSION
140ae8f5acSAlex Bradbury
150ae8f5acSAlex Bradbury# RUN: llvm-mc -filetype=obj -triple=riscv64 unknown_ext_name.s -o unknown_ext_name.o
160ae8f5acSAlex Bradbury# RUN: llvm-objdump -d unknown_ext_name.o 2>&1 | FileCheck %s --check-prefix=UNKNOWN-EXT-NAME
170ae8f5acSAlex Bradbury
180ae8f5acSAlex Bradbury#--- noncanonicalized_arch.s
19*91c6174cSAlex Bradbury# NONCANON: error: '[[FILE]]': arch string must begin with valid base ISA
20*91c6174cSAlex Bradbury# NONCANON-NOT: {{.}}
210ae8f5acSAlex Bradburyvsetvli a3, a2, e8, m8, tu, mu
220ae8f5acSAlex Bradbury
230ae8f5acSAlex Bradbury.section .riscv.attributes,"",@0x70000003
240ae8f5acSAlex Bradbury.byte 0x41
250ae8f5acSAlex Bradbury.long .Lend-.riscv.attributes-1
260ae8f5acSAlex Bradbury.asciz "riscv"  # vendor
270ae8f5acSAlex Bradbury.Lbegin:
280ae8f5acSAlex Bradbury.byte 1  # Tag_File
290ae8f5acSAlex Bradbury.long .Lend-.Lbegin
300ae8f5acSAlex Bradbury.byte 5  # Tag_RISCV_arch
310ae8f5acSAlex Bradbury.asciz "rv64gcv"
320ae8f5acSAlex Bradbury.Lend:
330ae8f5acSAlex Bradbury
340ae8f5acSAlex Bradbury#--- invalid_arch.s
35*91c6174cSAlex Bradbury# INVALID: error: '[[FILE]]': arch string must begin with valid base ISA
36*91c6174cSAlex Bradbury# INVALID-NOT: {{.}}
370ae8f5acSAlex Bradburynop
380ae8f5acSAlex Bradbury
390ae8f5acSAlex Bradbury.section .riscv.attributes,"",@0x70000003
400ae8f5acSAlex Bradbury.byte 0x41
410ae8f5acSAlex Bradbury.long .Lend-.riscv.attributes-1
420ae8f5acSAlex Bradbury.asciz "riscv"  # vendor
430ae8f5acSAlex Bradbury.Lbegin:
440ae8f5acSAlex Bradbury.byte 1  # Tag_File
450ae8f5acSAlex Bradbury.long .Lend-.Lbegin
460ae8f5acSAlex Bradbury.byte 5  # Tag_RISCV_arch
470ae8f5acSAlex Bradbury.asciz "nonsense"
480ae8f5acSAlex Bradbury.Lend:
490ae8f5acSAlex Bradbury
500ae8f5acSAlex Bradbury#--- unknown_i_version.s
5106206588SAlex Bradbury# UNKNOWN-I-VERSION: nop
520ae8f5acSAlex Bradburynop
530ae8f5acSAlex Bradbury
540ae8f5acSAlex Bradbury.section .riscv.attributes,"",@0x70000003
550ae8f5acSAlex Bradbury.byte 0x41
560ae8f5acSAlex Bradbury.long .Lend-.riscv.attributes-1
570ae8f5acSAlex Bradbury.asciz "riscv"  # vendor
580ae8f5acSAlex Bradbury.Lbegin:
590ae8f5acSAlex Bradbury.byte 1  # Tag_File
600ae8f5acSAlex Bradbury.long .Lend-.Lbegin
610ae8f5acSAlex Bradbury.byte 5  # Tag_RISCV_arch
620ae8f5acSAlex Bradbury.asciz "rv32i99p99"
630ae8f5acSAlex Bradbury.Lend:
640ae8f5acSAlex Bradbury
650ae8f5acSAlex Bradbury#--- unknown_ext_version.s
66*91c6174cSAlex Bradbury# UNKNOWN-EXT-VERSION: cbo.clean (t0)
670ae8f5acSAlex Bradburycbo.clean (t0)
680ae8f5acSAlex Bradbury
690ae8f5acSAlex Bradbury.section .riscv.attributes,"",@0x70000003
700ae8f5acSAlex Bradbury.byte 0x41
710ae8f5acSAlex Bradbury.long .Lend-.riscv.attributes-1
720ae8f5acSAlex Bradbury.asciz "riscv"  # vendor
730ae8f5acSAlex Bradbury.Lbegin:
740ae8f5acSAlex Bradbury.byte 1  # Tag_File
750ae8f5acSAlex Bradbury.long .Lend-.Lbegin
760ae8f5acSAlex Bradbury.byte 5  # Tag_RISCV_arch
770ae8f5acSAlex Bradbury.asciz "rv32i2p0_zicbom0p1"
780ae8f5acSAlex Bradbury.Lend:
790ae8f5acSAlex Bradbury
800ae8f5acSAlex Bradbury#--- unknown_ext_name.s
810ae8f5acSAlex Bradbury# UNKNOWN-EXT-NAME: nop
820ae8f5acSAlex Bradburynop
830ae8f5acSAlex Bradbury
840ae8f5acSAlex Bradbury.section .riscv.attributes,"",@0x70000003
850ae8f5acSAlex Bradbury.byte 0x41
860ae8f5acSAlex Bradbury.long .Lend-.riscv.attributes-1
870ae8f5acSAlex Bradbury.asciz "riscv"  # vendor
880ae8f5acSAlex Bradbury.Lbegin:
890ae8f5acSAlex Bradbury.byte 1  # Tag_File
900ae8f5acSAlex Bradbury.long .Lend-.Lbegin
910ae8f5acSAlex Bradbury.byte 5  # Tag_RISCV_arch
920ae8f5acSAlex Bradbury.asciz "rv32i2p0_zmadeup1p0_smadeup1p0_xmadeup1p0_sxmadeup1p0"
930ae8f5acSAlex Bradbury.Lend:
94