divu
Unsigned division
This instruction is defined by:
Synopsis
Divide unsigned values in xs1 by xs2, and store the result in xd.
The remainder is discarded.
If the value in xs2 is zero, xd gets the largest unsigned value.
Decode Variables
Bits<5> xs2 = $encoding[24:20];
Bits<5> xs1 = $encoding[19:15];
Bits<5> xd = $encoding[11:7];
Execution
-
Pruned, XLEN == 64
-
Original
if (implemented?(ExtensionName::M) && (misa.M == 1'b0)) {
raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
}
XReg src1 = X[xs1];
XReg src2 = X[xs2];
if (src2 == 0) {
X[xd] = {MXLEN{1'b1}};
} else {
X[xd] = src1 / src2;
}
if (implemented?(ExtensionName::M) && (misa.M == 1'b0)) {
raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
}
XReg src1 = X[xs1];
XReg src2 = X[xs2];
if (src2 == 0) {
X[xd] = {MXLEN{1'b1}};
} else {
X[xd] = src1 / src2;
}