
Implement the following implications according to the [Zc spec](https://github.com/riscvarchive/riscv-code-size-reduction/blob/main/Zc-specification/Zc.adoc#13-c) > As C defines the same instructions as Zca, Zcf and Zcd, the rule is that: > * C always implies Zca > * C+F implies Zcf (RV32 only) > * C+D implies Zcd
30 lines
896 B
ArmAsm
30 lines
896 B
ArmAsm
## Test llvm-mc could handle .attribute correctly.
|
|
|
|
# RUN: llvm-mc %s -triple=riscv32 -filetype=asm | FileCheck %s
|
|
# RUN: llvm-mc %s -triple=riscv64 -filetype=asm | FileCheck %s
|
|
# RUN: llvm-mc %s -triple=riscv32 -filetype=asm -riscv-add-build-attributes \
|
|
# RUN: | FileCheck %s
|
|
# RUN: llvm-mc %s -triple=riscv64 -filetype=asm -riscv-add-build-attributes \
|
|
# RUN: | FileCheck %s
|
|
|
|
.attribute stack_align, 16
|
|
# CHECK: attribute 4, 16
|
|
|
|
.attribute arch, "rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0_zaamo1p0_zalrsc1p0"
|
|
# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0"
|
|
|
|
.attribute unaligned_access, 0
|
|
# CHECK: attribute 6, 0
|
|
|
|
.attribute priv_spec, 2
|
|
# CHECK: attribute 8, 2
|
|
|
|
.attribute priv_spec_minor, 0
|
|
# CHECK: attribute 10, 0
|
|
|
|
.attribute priv_spec_revision, 0
|
|
# CHECK: attribute 12, 0
|
|
|
|
.attribute atomic_abi, 0
|
|
# CHECK: attribute 14, 0
|