Skip to content

Commit 46fdf37

Browse files
committed
Adjust vsdeleg from VSSIP to SSIP interrupt occurred
Signed-off-by: Binno <[email protected]>
1 parent 065950a commit 46fdf37

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

riscv/processor.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,7 @@ void processor_t::take_trap(trap_t& t, reg_t epc)
447447
bool supv_double_trap = false;
448448
if (interrupt) {
449449
vsdeleg = (curr_virt && state.prv <= PRV_S) ? state.hideleg->read() : 0;
450+
vsdeleg >>= 1;
450451
hsdeleg = (state.prv <= PRV_S) ? (state.mideleg->read() | state.nonvirtual_sip->read()) : 0;
451452
bit &= ~((reg_t)1 << (max_xlen - 1));
452453
} else {

0 commit comments

Comments
 (0)