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; | ||||
| } | ||||
|  | ||||
| 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; | ||||
|     return iss::Ok; | ||||
| } | ||||
| @@ -687,7 +687,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT | ||||
|     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 (addr == mcycleh) | ||||
|             return iss::Err; | ||||
| @@ -703,7 +703,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_m_p<BASE, FEAT> | ||||
|     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)) { | ||||
|         val = static_cast<reg_t>(this->reg.instret); | ||||
|     } 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; | ||||
| } | ||||
|  | ||||
| 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 ((addr&0xff) == (minstreth&0xff)) | ||||
|             return iss::Err; | ||||
| @@ -740,7 +740,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT | ||||
|     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; | ||||
|     return iss::Ok; | ||||
| } | ||||
| @@ -791,7 +791,7 @@ template <typename BASE, features_e FEAT> iss::status riscv_hart_mu_p<BASE, FEAT | ||||
|     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(); | ||||
|     csr[addr] = val;//(csr[addr] & ~mask) | (val & mask); | ||||
|     return iss::Ok; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user