|
|
|
@ -1864,6 +1864,8 @@ void sscsrind_reg_csr_t::verify_permissions(insn_t insn, bool write) const { |
|
|
|
csr_t::verify_permissions(insn, write); |
|
|
|
|
|
|
|
if (proc->extension_enabled(EXT_SMCDELEG)) { |
|
|
|
auto iselect_val = iselect->read(); |
|
|
|
if (iselect_val >= SISELECT_SMCDELEG_START && iselect_val <= SISELECT_SMCDELEG_END) { |
|
|
|
if (address >= CSR_VSIREG && address <= CSR_VSIREG6) { |
|
|
|
if (!state->v) { |
|
|
|
// An attempt to access any vsireg* from M or S mode raises an illegal instruction exception.
|
|
|
|
@ -1916,6 +1918,7 @@ void sscsrind_reg_csr_t::verify_permissions(insn_t insn, bool write) const { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
csr_t_p proxy_csr = get_reg(); |
|
|
|
if (proxy_csr == nullptr) { |
|
|
|
|