diff --git a/tests/coverage/csrwrites.S b/tests/coverage/csrwrites.S index 63ee00c38..ce5639bd7 100644 --- a/tests/coverage/csrwrites.S +++ b/tests/coverage/csrwrites.S @@ -37,4 +37,31 @@ main: csrrw t1, menvcfg, t0 csrrw t2, senvcfg, t0 + # testing FIOM with different privelege modes + # setting environment config (to both 1 and 0) in each privelege mode + csrsi menvcfg, 1 + li a0, 1 + ecall # enter supervisor mode + + li a0, 0 + ecall # enter user mode + + li a0, 1 + ecall # enter supervisor mode + + csrsi senvcfg, 1 + li a0, 0 + ecall # enter user mode + + li a0, 3 + ecall # enter machine mode + csrci menvcfg, 1 + + li a0, 1 + ecall # enter supervisor mode + + li a0, 0 + ecall # enter user mode + + j done diff --git a/tests/coverage/priv.S b/tests/coverage/priv.S index aa9c8b50b..dcf56e14a 100644 --- a/tests/coverage/priv.S +++ b/tests/coverage/priv.S @@ -297,6 +297,16 @@ sretdone: wfi + + + # Test uncovered privdec instructions + # exercise sfence.inval.ir instruction + .word 0x18100073 + + # exercise sret with rs1 not 0 + .word 0x102F8073 + + j done