Added FIXME messages for mulh
This commit is contained in:
		@@ -371,6 +371,7 @@ static void cpu_execute(rv32_cpu_t* cpu, instruction_t* instruction)
 | 
				
			|||||||
							break;
 | 
												break;
 | 
				
			||||||
						case FUNC7_MULH:
 | 
											case FUNC7_MULH:
 | 
				
			||||||
							// MULtiplication High (32 high bits) (signed * signed)
 | 
												// MULtiplication High (32 high bits) (signed * signed)
 | 
				
			||||||
 | 
												// FIXME: This is wrong, we should sign extend the int64_t i guess
 | 
				
			||||||
							uint64_t mulh_result = (uint64_t) (((int64_t) cpu->regs.x[instruction->rs1]) * ((int64_t) cpu->regs.x[instruction->rs2]));
 | 
												uint64_t mulh_result = (uint64_t) (((int64_t) cpu->regs.x[instruction->rs1]) * ((int64_t) cpu->regs.x[instruction->rs2]));
 | 
				
			||||||
							cpu->regs.x[instruction->rd] = (uint32_t) (mulh_result >> 32);
 | 
												cpu->regs.x[instruction->rd] = (uint32_t) (mulh_result >> 32);
 | 
				
			||||||
							break;
 | 
												break;
 | 
				
			||||||
@@ -392,6 +393,7 @@ static void cpu_execute(rv32_cpu_t* cpu, instruction_t* instruction)
 | 
				
			|||||||
							break;
 | 
												break;
 | 
				
			||||||
						case FUNC7_MULHSU:
 | 
											case FUNC7_MULHSU:
 | 
				
			||||||
							// MULtiplication High (32 high bits) (signed * unsigned)
 | 
												// MULtiplication High (32 high bits) (signed * unsigned)
 | 
				
			||||||
 | 
												// FIXME: This is wrong, we should sign extend the int64_t i guess
 | 
				
			||||||
							uint64_t mulhsu_result = (uint64_t) (((int64_t) cpu->regs.x[instruction->rs1]) * ((uint64_t) cpu->regs.x[instruction->rs2]));
 | 
												uint64_t mulhsu_result = (uint64_t) (((int64_t) cpu->regs.x[instruction->rs1]) * ((uint64_t) cpu->regs.x[instruction->rs2]));
 | 
				
			||||||
							cpu->regs.x[instruction->rd] = (uint32_t) (mulhsu_result >> 32);
 | 
												cpu->regs.x[instruction->rd] = (uint32_t) (mulhsu_result >> 32);
 | 
				
			||||||
							break;
 | 
												break;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user