Does SH3ADD.UW access memory?
No. It operates only on integer registers.
Shift unsigned word left by 3 and add (RV64)
rd, rs1 and rs2 select integer registers x0–x31; there is no immediate or shift-amount operand.
32-bit R-type: opcode=0111011 (OP-32), funct7=0010000, funct3=110; rs2, rs1 and rd occupy bits24:20, 19:15 and 11:7.
RV64 Zba only: zero-extend rs1[31:0], shift left by 3 and add full-width rs2. Keep the low 64 bits without word-result sign extension.
Overlapping operands read values before writeback; x0 is zero and writes to it are discarded. Only integer registers are computed; data memory is not accessed.
Zero-extends rs1[31:0], shifts it left by 3, then performs an XLEN-wide addition with rs2. This RV64 Zba instruction can scale an unsigned-word index before adding a base.
Starts with machine-code field decoding, then shows operand reads, instruction-specific execution, and ISA-visible state update.
Assumes Zba is enabled at the selected XLEN, with the fixed register values below and PC=0x2000; fetch succeeds and no asynchronous interrupt occurs. Steps are a teaching decomposition.
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.
SH3ADD.UW is an RV64 Zba instruction: it zero-extends rs1[31:0], shifts it left by 3, then performs an XLEN-wide add with rs2.
RV64 Zba, x11=3 and x12=0x1000: the example shifts 3 left by 3, adds 0x1000 and writes x10=0x1018; no memory access occurs.
No. It operates only on integer registers.
The result is the XLEN-wide sum of rs2 and the zero-extended, shifted rs1[31:0], written to rd.