xref: /llvm-project/llvm/test/tools/llvm-readobj/ELF/RISCV/attribute.s (revision dc90af501f00bb0bbbfde2d90360f074922e3e81)
1501522b5SKai Wang## Test llvm-readobj & llvm-readelf can decode RISC-V attributes correctly.
2501522b5SKai Wang
3501522b5SKai Wang# RUN: llvm-mc -triple riscv32 -filetype obj -o %t.rv32.o %s
4501522b5SKai Wang# RUN: llvm-mc -triple riscv64 -filetype obj -o %t.rv64.o %s
5501522b5SKai Wang# RUN: llvm-readobj --arch-specific %t.rv32.o \
6501522b5SKai Wang# RUN:   | FileCheck %s --check-prefix=CHECK-OBJ
7501522b5SKai Wang# RUN: llvm-readelf -A %t.rv32.o \
8501522b5SKai Wang# RUN:   | FileCheck %s --check-prefix=CHECK-OBJ
9501522b5SKai Wang# RUN: llvm-readobj --arch-specific %t.rv64.o \
10501522b5SKai Wang# RUN:   | FileCheck %s --check-prefix=CHECK-OBJ
11501522b5SKai Wang# RUN: llvm-readelf -A %t.rv64.o \
12501522b5SKai Wang# RUN:   | FileCheck %s --check-prefix=CHECK-OBJ
13501522b5SKai Wang
14501522b5SKai Wang.attribute  Tag_stack_align, 16
15501522b5SKai Wang# CHECK-OBJ:      Tag: 4
16501522b5SKai Wang# CHECK-OBJ-NEXT: Value: 16
17501522b5SKai Wang# CHECK-OBJ-NEXT: TagName: stack_align
18501522b5SKai Wang# CHECK-OBJ-NEXT: Description: Stack alignment is 16-bytes
19501522b5SKai Wang
20*dc90af50SCraig Topper.attribute  Tag_arch, "rv32i2p1_m2p0_a2p1_c2p0"
21501522b5SKai Wang# CHECK-OBJ:      Tag: 5
22501522b5SKai Wang# CHECK-OBJ-NEXT: TagName: arch
23*dc90af50SCraig Topper# CHECK-OBJ-NEXT: Value: rv32i2p1_m2p0_a2p1_c2p0
24501522b5SKai Wang
25501522b5SKai Wang.attribute  Tag_unaligned_access, 0
26501522b5SKai Wang# CHECK-OBJ:      Tag: 6
27501522b5SKai Wang# CHECK-OBJ-NEXT: Value: 0
28501522b5SKai Wang# CHECK-OBJ-NEXT: TagName: unaligned_access
29501522b5SKai Wang# CHECK-OBJ-NEXT: Description: No unaligned access
30501522b5SKai Wang
31501522b5SKai Wang.attribute  Tag_priv_spec, 2
32501522b5SKai Wang# CHECK-OBJ:      Tag: 8
33501522b5SKai Wang# CHECK-OBJ-NEXT: TagName: priv_spec
34501522b5SKai Wang# CHECK-OBJ-NEXT: Value: 2
35501522b5SKai Wang
36501522b5SKai Wang.attribute  Tag_priv_spec_minor, 0
37501522b5SKai Wang# CHECK-OBJ:      Tag: 10
38501522b5SKai Wang# CHECK-OBJ-NEXT: TagName: priv_spec_minor
39501522b5SKai Wang# CHECK-OBJ-NEXT: Value: 0
40501522b5SKai Wang
41501522b5SKai Wang.attribute  Tag_priv_spec_revision, 0
42501522b5SKai Wang# CHECK-OBJ:      Tag: 12
43501522b5SKai Wang# CHECK-OBJ-NEXT: TagName: priv_spec_revision
44501522b5SKai Wang# CHECK-OBJ-NEXT: Value: 0
45