Is it a normal user-mode instruction?
No. These instructions are constrained by privilege level and extension support; user-mode legality must follow the privileged rules.
Svinval selective address-translation-cache invalidation by rs1 (VA) and rs2 (ASID); ordering is provided by SFENCE.W.INVAL/SFENCE.INVAL.IR.
SINVAL.VMA invalidates the address-translation cache entries that an SFENCE.VMA with the same rs1/rs2 values would invalidate, but by itself it performs only invalidation; its ordering exists only with respect to SFENCE.VMA, SFENCE.W.INVAL, and SFENCE.INVAL.IR as specified. A typical batched sequence is SFENCE.W.INVAL -> multiple SINVAL.VMA/HINVAL.* instructions -> SFENCE.INVAL.IR. rs1=x0 means all virtual addresses, and rs2=x0 means all ASIDs.
SINVAL.VMA is a system-level instruction defined by the privileged architecture. This page covers architectural semantics only, not platform firmware policy.
Understand this scenario with real code like «sinval.vma x0, x0 # invalidate all TLB entries for all ASIDs».
Understand this scenario with real code like «sinval.vma x0, x0 # invalidate all TLB entries for all ASIDs».
Understand this scenario with real code like «sinval.vma x0, x0 # invalidate all TLB entries for all ASIDs».
No. These instructions are constrained by privilege level and extension support; user-mode legality must follow the privileged rules.
No. Address translation, instruction fetch, and data-memory ordering use different fence/invalidation instructions.