What is stored with rs2=x0 or rs1=rs2?
rs2=x0 stores 32 zero bits. With rs1=rs2, the old register value supplies the address and its low 32 data bits.
Hypervisor virtual-machine store of a word using VS/VU effective privilege and two-stage translation.
HSV.W is the H-extension virtual-machine store. It may execute in M-mode or HS-mode, or in U-mode when hstatus.HU=1. The explicit memory access uses effective privilege VU when hstatus.SPVP=0 and VS when hstatus.SPVP=1, with two-stage address translation.
Shows HSV.W SYSTEM decoding, privilege checks, two-stage translation, and 32-bit store commitment without modeling page walks or TLB implementation.
Assumes H is implemented, relevant privilege modes use the same XLEN, and pointer masking is disabled. Input represents low source bits; the selector supplies the access outcome without validating page tables. rs1=x0 fixes address zero. Steps are teaching stages, not processor cycles.
rs2=x0 fixes the source to zero. With rs1=rs2, source low bits derive from the same address register and cannot be edited independently. Both use pre-execution values. The stored number represents the full access width; byte endianness is not simulated.
This animation shows only official architectural conditions and outcomes; page walks, TLBs, caches, and platform exception handling are not modeled.
HSV.W is the H-extension virtual-machine word store, storing through VS-stage and G-stage translation using the memory access's VS/VU effective privilege.
Assume RV64 H, HS-mode, SPVP=0, pointer masking off, and successful translation/protection; a0=0x1000 and a1=0x123456789ABCDEF0. hsv.w a1, (a0) stores the low 32 bits 0x9ABCDEF0 (4 bytes) at that address without register writeback.
Assume RV64 H, HS-mode, SPVP=0, pointer masking off, and successful translation/protection; a0=0x1000 and a1=0x123456789ABCDEF0. hsv.w a1, (a0) stores the low 32 bits 0x9ABCDEF0 (4 bytes) at that address without register writeback.
Assume RV64 H, HS-mode, SPVP=0, pointer masking off, and successful translation/protection; a0=0x1000 and a1=0x123456789ABCDEF0. hsv.w a1, (a0) stores the low 32 bits 0x9ABCDEF0 (4 bytes) at that address without register writeback.
rs2=x0 stores 32 zero bits. With rs1=rs2, the old register value supplies the address and its low 32 data bits.