@@ -535,14 +535,14 @@ void state_t::reset(processor_t* const proc, reg_t max_isa)
535
535
536
536
537
537
// Smcsrind / Sscsrind
538
- csr_t_p miselect;
539
- csr_t_p siselect;
540
- csr_t_p vsiselect;
541
538
sscsrind_reg_csr_t ::sscsrind_reg_csr_t_p mireg[6 ];
542
539
sscsrind_reg_csr_t ::sscsrind_reg_csr_t_p sireg[6 ];
543
540
sscsrind_reg_csr_t ::sscsrind_reg_csr_t_p vsireg[6 ];
544
541
545
542
if (proc->extension_enabled_const (EXT_SMCSRIND)) {
543
+ csr_t_p miselect = std::make_shared<basic_csr_t >(proc, CSR_MISELECT, 0 );
544
+ csrmap[CSR_MISELECT] = miselect;
545
+
546
546
const reg_t mireg_csrs[] = { CSR_MIREG, CSR_MIREG2, CSR_MIREG3, CSR_MIREG4, CSR_MIREG5, CSR_MIREG6 };
547
547
auto i = 0 ;
548
548
for (auto csr : mireg_csrs) {
@@ -552,9 +552,9 @@ void state_t::reset(processor_t* const proc, reg_t max_isa)
552
552
}
553
553
554
554
if (proc->extension_enabled_const (EXT_SSCSRIND)) {
555
- vsiselect = std::make_shared<basic_csr_t >(proc, CSR_VSISELECT, 0 );
555
+ csr_t_p vsiselect = std::make_shared<basic_csr_t >(proc, CSR_VSISELECT, 0 );
556
556
csrmap[CSR_VSISELECT] = vsiselect;
557
- siselect = std::make_shared<basic_csr_t >(proc, CSR_SISELECT, 0 );
557
+ csr_t_p siselect = std::make_shared<basic_csr_t >(proc, CSR_SISELECT, 0 );
558
558
csrmap[CSR_SISELECT] = std::make_shared<virtualized_csr_t >(proc, siselect, vsiselect);
559
559
560
560
const reg_t vsireg_csrs[] = { CSR_VSIREG, CSR_VSIREG2, CSR_VSIREG3, CSR_VSIREG4, CSR_VSIREG5, CSR_VSIREG6 };
0 commit comments