aboutsummaryrefslogtreecommitdiff
path: root/isa/rv64sv/privileged_inst.S
diff options
context:
space:
mode:
Diffstat (limited to 'isa/rv64sv/privileged_inst.S')
-rw-r--r--isa/rv64sv/privileged_inst.S24
1 files changed, 9 insertions, 15 deletions
diff --git a/isa/rv64sv/privileged_inst.S b/isa/rv64sv/privileged_inst.S
index 818c11f..b7b169e 100644
--- a/isa/rv64sv/privileged_inst.S
+++ b/isa/rv64sv/privileged_inst.S
@@ -10,24 +10,18 @@
#include "riscv_test.h"
#include "test_macros.h"
-RVTEST_RV64S
+RVTEST_RV64SV
RVTEST_CODE_BEGIN
- li a0, SR_EA | SR_EI
- csrs status, a0
-
la a3,handler
- csrw evec,a3 # set exception handler
-
- csrr a3,status
- li a4,(1 << IRQ_COP)
- slli a4,a4,SR_IM_SHIFT
- or a3,a3,a4 # enable IM[COP]
- csrw status,a3
-
- la a0, SR_U64
- csrs status, a0
- csrc status, SR_S
+ csrw stvec,a3 # set exception handler
+
+ li a3, SSTATUS_PS
+ csrc sstatus, a3
+ la t0, 1f
+ csrw sepc, t0
+ sret
+1:
privileged_inst:
vxcptcause a3 # privileged inst