When is execution legal?
At the supported XLEN, with H implemented: M/HS or V=0 U-mode with HU=1 may execute. V=0 U-mode with HU=0 raises illegal-instruction; V=1 raises virtual-instruction.
Hypervisor virtual-machine execute-permission word load; execute permission replaces read permission during translation.
Extension condition: H extension 1.0; RV32/RV64. V=0, in M/HS or U-mode with hstatus.HU=1.
HLVX.WU is the H-extension virtual-machine load variant used for instruction-fetch emulation. It is like the corresponding HLV unsigned load except execute permission takes the place of read permission in both translation stages; the final physical memory attributes must allow both execute and read. It may execute in M-mode or HS-mode, or in U-mode when hstatus.HU=1. HLVX.WU is valid on RV32, where sign extension and zero extension of a 32-bit value are indistinguishable.
Shows HLVX.WU SYSTEM decoding, privilege checks, two-stage translation, and zero-extended writeback without modeling page walks or TLB implementation.
Assumes H is implemented, relevant privilege modes use the same XLEN, and pointer masking is disabled. Input is an assembled memory value; the selector supplies the access outcome without validating page tables. rs1=x0 fixes address zero. Steps are teaching stages, not processor cycles.
This animation shows only official architectural conditions and outcomes; page walks, TLBs, caches, and platform exception handling are not modeled.
Address=rs1 (no offset). Success: zero-extend the 32-bit load to XLEN into rd; rd=x0 discards only writeback.
RV64 H, HS-mode, SPVP=0, pointer masking off, address 0x1000 and a successful access: a1=0x1000 and assembled memory value=0x80000001; hlvx.wu a0, (a1) gives a0=0x0000000080000001. Both translation stages permit execute, and final physical attributes permit read and execute.
At the supported XLEN, with H implemented: M/HS or V=0 U-mode with HU=1 may execute. V=0 U-mode with HU=0 raises illegal-instruction; V=1 raises virtual-instruction.