Compare commits
	
		
			1 Commits
		
	
	
		
			d443c89c87
			...
			53de21eef9
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 53de21eef9 | 
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -706,9 +706,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); |                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); | ||||||
|                                         int8_t res_27 = super::template read_mem<int8_t>(traits::MEM, load_address); |                                         int8_t res_1 = super::template read_mem<int8_t>(traits::MEM, load_address); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         int8_t res = (int8_t)res_27; |                                         int8_t res = (int8_t)res_1; | ||||||
|                                         if(rd != 0) { |                                         if(rd != 0) { | ||||||
|                                             *(X+rd) = (uint32_t)res; |                                             *(X+rd) = (uint32_t)res; | ||||||
|                                         } |                                         } | ||||||
| @@ -737,9 +737,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); |                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); | ||||||
|                                         int16_t res_28 = super::template read_mem<int16_t>(traits::MEM, load_address); |                                         int16_t res_2 = super::template read_mem<int16_t>(traits::MEM, load_address); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         int16_t res = (int16_t)res_28; |                                         int16_t res = (int16_t)res_2; | ||||||
|                                         if(rd != 0) { |                                         if(rd != 0) { | ||||||
|                                             *(X+rd) = (uint32_t)res; |                                             *(X+rd) = (uint32_t)res; | ||||||
|                                         } |                                         } | ||||||
| @@ -768,9 +768,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); |                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); | ||||||
|                                         int32_t res_29 = super::template read_mem<int32_t>(traits::MEM, load_address); |                                         int32_t res_3 = super::template read_mem<int32_t>(traits::MEM, load_address); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         int32_t res = (int32_t)res_29; |                                         int32_t res = (int32_t)res_3; | ||||||
|                                         if(rd != 0) { |                                         if(rd != 0) { | ||||||
|                                             *(X+rd) = (uint32_t)res; |                                             *(X+rd) = (uint32_t)res; | ||||||
|                                         } |                                         } | ||||||
| @@ -799,9 +799,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); |                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); | ||||||
|                                         uint8_t res_30 = super::template read_mem<uint8_t>(traits::MEM, load_address); |                                         uint8_t res_4 = super::template read_mem<uint8_t>(traits::MEM, load_address); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         uint8_t res = res_30; |                                         uint8_t res = res_4; | ||||||
|                                         if(rd != 0) { |                                         if(rd != 0) { | ||||||
|                                             *(X+rd) = (uint32_t)res; |                                             *(X+rd) = (uint32_t)res; | ||||||
|                                         } |                                         } | ||||||
| @@ -830,9 +830,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); |                                         uint32_t load_address = (uint32_t)((uint64_t)(*(X+rs1) ) + (uint64_t)((int16_t)sext<12>(imm) )); | ||||||
|                                         uint16_t res_31 = super::template read_mem<uint16_t>(traits::MEM, load_address); |                                         uint16_t res_5 = super::template read_mem<uint16_t>(traits::MEM, load_address); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         uint16_t res = res_31; |                                         uint16_t res = res_5; | ||||||
|                                         if(rd != 0) { |                                         if(rd != 0) { | ||||||
|                                             *(X+rd) = (uint32_t)res; |                                             *(X+rd) = (uint32_t)res; | ||||||
|                                         } |                                         } | ||||||
| @@ -1538,9 +1538,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t xrs1 = *(X+rs1); |                                         uint32_t xrs1 = *(X+rs1); | ||||||
|                                         if(rd != 0) { |                                         if(rd != 0) { | ||||||
|                                             uint32_t res_32 = super::template read_mem<uint32_t>(traits::CSR, csr); |                                             uint32_t res_6 = super::template read_mem<uint32_t>(traits::CSR, csr); | ||||||
|                                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                             uint32_t xrd = res_32; |                                             uint32_t xrd = res_6; | ||||||
|                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrs1); |                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrs1); | ||||||
|                                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                             *(X+rd) = xrd; |                                             *(X+rd) = xrd; | ||||||
| @@ -1573,9 +1573,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); |                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); | ||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t res_33 = super::template read_mem<uint32_t>(traits::CSR, csr); |                                         uint32_t res_7 = super::template read_mem<uint32_t>(traits::CSR, csr); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         uint32_t xrd = res_33; |                                         uint32_t xrd = res_7; | ||||||
|                                         uint32_t xrs1 = *(X+rs1); |                                         uint32_t xrs1 = *(X+rs1); | ||||||
|                                         if(rs1 != 0) { |                                         if(rs1 != 0) { | ||||||
|                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrd | xrs1); |                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrd | xrs1); | ||||||
| @@ -1608,9 +1608,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); |                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); | ||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t res_34 = super::template read_mem<uint32_t>(traits::CSR, csr); |                                         uint32_t res_8 = super::template read_mem<uint32_t>(traits::CSR, csr); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         uint32_t xrd = res_34; |                                         uint32_t xrd = res_8; | ||||||
|                                         uint32_t xrs1 = *(X+rs1); |                                         uint32_t xrs1 = *(X+rs1); | ||||||
|                                         if(rs1 != 0) { |                                         if(rs1 != 0) { | ||||||
|                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrd & ~ xrs1); |                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrd & ~ xrs1); | ||||||
| @@ -1643,9 +1643,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); |                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); | ||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t res_35 = super::template read_mem<uint32_t>(traits::CSR, csr); |                                         uint32_t res_9 = super::template read_mem<uint32_t>(traits::CSR, csr); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         uint32_t xrd = res_35; |                                         uint32_t xrd = res_9; | ||||||
|                                         super::template write_mem<uint32_t>(traits::CSR, csr, (uint32_t)zimm); |                                         super::template write_mem<uint32_t>(traits::CSR, csr, (uint32_t)zimm); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         if(rd != 0) { |                                         if(rd != 0) { | ||||||
| @@ -1675,9 +1675,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); |                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); | ||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t res_36 = super::template read_mem<uint32_t>(traits::CSR, csr); |                                         uint32_t res_10 = super::template read_mem<uint32_t>(traits::CSR, csr); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         uint32_t xrd = res_36; |                                         uint32_t xrd = res_10; | ||||||
|                                         if(zimm != 0) { |                                         if(zimm != 0) { | ||||||
|                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrd | (uint32_t)zimm); |                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrd | (uint32_t)zimm); | ||||||
|                                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
| @@ -1709,9 +1709,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); |                                         raise(0, traits::RV_CAUSE_ILLEGAL_INSTRUCTION); | ||||||
|                                     } |                                     } | ||||||
|                                     else { |                                     else { | ||||||
|                                         uint32_t res_37 = super::template read_mem<uint32_t>(traits::CSR, csr); |                                         uint32_t res_11 = super::template read_mem<uint32_t>(traits::CSR, csr); | ||||||
|                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                                         uint32_t xrd = res_37; |                                         uint32_t xrd = res_11; | ||||||
|                                         if(zimm != 0) { |                                         if(zimm != 0) { | ||||||
|                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrd & ~ ((uint32_t)zimm)); |                                             super::template write_mem<uint32_t>(traits::CSR, csr, xrd & ~ ((uint32_t)zimm)); | ||||||
|                                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
| @@ -2046,9 +2046,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                     // execute instruction |                     // execute instruction | ||||||
|                     { |                     { | ||||||
|                         uint32_t offs = (uint32_t)((uint64_t)(*(X+rs1 + 8) ) + (uint64_t)(uimm )); |                         uint32_t offs = (uint32_t)((uint64_t)(*(X+rs1 + 8) ) + (uint64_t)(uimm )); | ||||||
|                         int32_t res_38 = super::template read_mem<int32_t>(traits::MEM, offs); |                         int32_t res_12 = super::template read_mem<int32_t>(traits::MEM, offs); | ||||||
|                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                         if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                         *(X+rd + 8) = (uint32_t)(int32_t)res_38; |                         *(X+rd + 8) = (uint32_t)(int32_t)res_12; | ||||||
|                     } |                     } | ||||||
|                     break; |                     break; | ||||||
|                 }// @suppress("No break at end of case") |                 }// @suppress("No break at end of case") | ||||||
| @@ -2472,9 +2472,9 @@ typename vm_base<ARCH>::virt_addr_t vm_impl<ARCH>::execute_inst(finish_cond_e co | |||||||
|                         } |                         } | ||||||
|                         else { |                         else { | ||||||
|                             uint32_t offs = (uint32_t)((uint64_t)(*(X+2) ) + (uint64_t)(uimm )); |                             uint32_t offs = (uint32_t)((uint64_t)(*(X+2) ) + (uint64_t)(uimm )); | ||||||
|                             int32_t res_39 = super::template read_mem<int32_t>(traits::MEM, offs); |                             int32_t res_13 = super::template read_mem<int32_t>(traits::MEM, offs); | ||||||
|                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); |                             if(this->core.reg.trap_state>=0x80000000UL) throw memory_access_exception(); | ||||||
|                             *(X+rd) = (uint32_t)(int32_t)res_39; |                             *(X+rd) = (uint32_t)(int32_t)res_13; | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                     break; |                     break; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user