Is SD available only on RV64?
RV64I defines single-register SD. RV32 Zilsd also defines SD with the same encoding but an even/odd source register pair; the animation demonstrates RV64I only.
RV64I: store the 64-bit value in rs2; RV32 Zilsd: store a 64-bit value from an even/odd register pair.
Extension condition: RV64I uses one 64-bit rs2; RV32 requires Zilsd, with an even rs2 selecting a register pair.
SD uses a 32-bit S-type encoding (opcode=0100011, funct3=011). RV64I stores the 64-bit rs2 value at rs1 plus a sign-extended 12-bit offset; address calculation wraps to XLEN. RV32 Zilsd reuses this encoding and requires even rs2: rs2 holds the low 32 bits and rs2+1 the high 32 bits, regardless of endianness. With rs2=x0 the entire 64-bit source is zero and x1 is not read. An 8-byte-aligned Zilsd access cannot raise address-misaligned, but the doubleword access need not be atomic. At addresses divisible by 4, each word access must be atomic; 4-byte alignment without 8-byte alignment may still trap.
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.
Assumes writable ordinary little-endian memory. Success stores the low 64 bits and advances PC by 4; general permissions, partial writes and device side effects are not modeled. Misaligned exceptions do not guarantee unchanged memory.
This EEI branch applies only when the effective address is not divisible by 8; a naturally aligned access must not raise an address-misaligned exception.
The machine code is split by the current instruction format; the animation starts from encoding/decode.
This SD animation models only the RV64I single-register 64-bit store. RV32 Zilsd uses the same mnemonic and encoding but operates on an even/odd register pair; its distinct conditions are covered in the static page content.
RV64I SD stores one 64-bit register; RV32 Zilsd SD stores an even/odd register pair. Keep these source models distinct.
SD stores the source at this page's data width; check the address, region permissions, and applicable RV64I/Zilsd conditions.
SD stores the source at this page's data width; check the address, region permissions, and applicable RV64I/Zilsd conditions.
RV64I defines single-register SD. RV32 Zilsd also defines SD with the same encoding but an even/odd source register pair; the animation demonstrates RV64I only.