Assignment

Implement mul, div, divu, rem, remu, mulw, divw, divuw, remw, and remuw instructions.

Introduction

RV64M is a hardware multiply and divide extension. Many smaller systems require software implementations of multiplication and division. However, those that support RV64M have a hardware implementation, and thus have new instructions to support it.

RV64M instructions

As you can see above, all instructions are R-type instructions, and all instructions require that funct7 be 1. They also share the same opcode, so the main discriminator is funct3.