Compare commits
	
		
			1 Commits
		
	
	
		
			c592a26346
			...
			d0f3a120fd
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d0f3a120fd | 
@@ -666,7 +666,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT
 | 
				
			|||||||
    return iss::Ok;
 | 
					    return iss::Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template <typename BASE, features_e FEAT> iss::status riscv_hart_m_p<BASE, FEAT>::read_null(unsigned addr, reg_t &val) {
 | 
					template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT>::read_null(unsigned addr, reg_t &val) {
 | 
				
			||||||
    val = 0;
 | 
					    val = 0;
 | 
				
			||||||
    return iss::Ok;
 | 
					    return iss::Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -687,7 +687,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT
 | 
				
			|||||||
    return iss::Ok;
 | 
					    return iss::Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template <typename BASE, features_e FEAT> iss::status riscv_hart_m_p<BASE, FEAT>::write_cycle(unsigned addr, reg_t val) {
 | 
					template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT>::write_cycle(unsigned addr, reg_t val) {
 | 
				
			||||||
    if (sizeof(typename traits<BASE>::reg_t) != 4) {
 | 
					    if (sizeof(typename traits<BASE>::reg_t) != 4) {
 | 
				
			||||||
        if (addr == mcycleh)
 | 
					        if (addr == mcycleh)
 | 
				
			||||||
            return iss::Err;
 | 
					            return iss::Err;
 | 
				
			||||||
@@ -703,7 +703,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_m_p<BASE, FEAT>
 | 
				
			|||||||
    return iss::Ok;
 | 
					    return iss::Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template <typename BASE, features_e FEAT> iss::status riscv_hart_m_p<BASE, FEAT>::read_instret(unsigned addr, reg_t &val) {
 | 
					template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT>::read_instret(unsigned addr, reg_t &val) {
 | 
				
			||||||
    if ((addr&0xff) == (minstret&0xff)) {
 | 
					    if ((addr&0xff) == (minstret&0xff)) {
 | 
				
			||||||
        val = static_cast<reg_t>(this->reg.instret);
 | 
					        val = static_cast<reg_t>(this->reg.instret);
 | 
				
			||||||
    } else if ((addr&0xff) == (minstreth&0xff)) {
 | 
					    } else if ((addr&0xff) == (minstreth&0xff)) {
 | 
				
			||||||
@@ -713,7 +713,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_m_p<BASE, FEAT>
 | 
				
			|||||||
    return iss::Ok;
 | 
					    return iss::Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template <typename BASE, features_e FEAT> iss::status riscv_hart_m_p<BASE, FEAT>::write_instret(unsigned addr, reg_t val) {
 | 
					template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT>::write_instret(unsigned addr, reg_t val) {
 | 
				
			||||||
    if (sizeof(typename traits<BASE>::reg_t) != 4) {
 | 
					    if (sizeof(typename traits<BASE>::reg_t) != 4) {
 | 
				
			||||||
        if ((addr&0xff) == (minstreth&0xff))
 | 
					        if ((addr&0xff) == (minstreth&0xff))
 | 
				
			||||||
            return iss::Err;
 | 
					            return iss::Err;
 | 
				
			||||||
@@ -740,7 +740,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT
 | 
				
			|||||||
    return iss::Ok;
 | 
					    return iss::Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template <typename BASEE, features_e FEAT> iss::status riscv_hart_m_p<BASE, FEAT>::read_mtvec(unsigned addr, reg_t &val) {
 | 
					template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT>::read_mtvec(unsigned addr, reg_t &val) {
 | 
				
			||||||
    val = csr[mtvec] & ~2;
 | 
					    val = csr[mtvec] & ~2;
 | 
				
			||||||
    return iss::Ok;
 | 
					    return iss::Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -791,7 +791,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT
 | 
				
			|||||||
    return iss::Ok;
 | 
					    return iss::Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template <typename BASE, features_e FEAT> iss::status riscv_hart_m_p<BASE, FEAT>::write_mepc(unsigned addr, reg_t val) {
 | 
					template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT>::write_mepc(unsigned addr, reg_t val) {
 | 
				
			||||||
    auto mask = get_pc_mask();
 | 
					    auto mask = get_pc_mask();
 | 
				
			||||||
    csr[addr] = val;//(csr[addr] & ~mask) | (val & mask);
 | 
					    csr[addr] = val;//(csr[addr] & ~mask) | (val & mask);
 | 
				
			||||||
    return iss::Ok;
 | 
					    return iss::Ok;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user