How does DIVUW handle the upper 32 bits?
Source upper halves are ignored; quotient bit 31 is sign-extended through the destination upper half.
Divide lower 32 bits of rs1 by lower 32 bits of rs2 (unsigned), sign-extend 32-bit quotient to 64 bits
DIVUW is an RV64-only unsigned division instruction that divides the lower 32 bits of rs1 by the lower 32 bits of rs2 (both unsigned), sign-extends the 32-bit quotient to 64 bits. Division by zero returns all-1s (2^32-1 sign-extended to 64 bits = -1).
Starts with machine-code field decoding, then shows operand reads, instruction-specific execution, and ISA-visible state update.
This example uses fixed initial register values and PC=0x2000; instruction fetch succeeds, with no asynchronous interrupt or extra extension checks. Exception branches stop ordinary commit; post-trap PC and handler state are EEI-dependent.
This selector chooses specification-defined division-result branches. Division presets set the displayed t1/t2 initial values; editing a source register restores normal mode. It is not a trap or performance model.
The machine code is split by the current instruction format; the animation starts from encoding/decode.
This animation shows ISA-visible decode and state changes, not any specific CPU pipeline, cache, prediction, or timing implementation.
DIVUW divides the low 32 bits of both sources as unsigned integers, then sign-extends the 32-bit quotient to 64 bits. Source upper halves do not participate.
Understand this scenario with real code like «divuw x10, x11, x12 # quotient uses unsigned low 32-bit sources; sign-extend to 64 bits».
Source upper halves are ignored; quotient bit 31 is sign-extended through the destination upper half.