Skip to content

Commit 79907ef

Browse files
authored
Merge pull request #2014 from binno/fix_vs_exception_delegation
Adjust vsdeleg from VSSIP to SSIP interrupt occurred
2 parents 0f88756 + 46fdf37 commit 79907ef

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)