Request service from the execution environment by raising an environment-call exception
RISC-V Instruction Set Online Reference
RVOPcode is a developer-focused RISC-V instruction set online reference. Search by mnemonic, extension, function, scenario, register name, CSR name, or topic to quickly find instruction syntax, encodings, examples, pseudo-instruction expansions, ABI rules, and CSR field details.
Search directly by mnemonic, ABI name, CSR name, or topic keyword.
Recent Searches
Core Entry Points
Instruction Library
Look up RISC-V instruction syntax, encoding, semantics, examples, and related instructions
Instruction Encoder
Encode RISC-V assembly into machine code with opcode, funct fields, and immediate breakdown, then continue into formats and the instruction reference
Instruction Decoder
Decode a 32-bit machine word into assembly, format, and field layout, then continue into instruction details and encoding rules
Register Quick Reference
Browse x0-x31 registers online with ABI names, save conventions, and usage
CSR Reference
Find control and status register addresses, access rules, privilege levels, and related architectural state
Pseudo Instructions
See how RISC-V pseudo instructions expand to real instructions such as call, ret, li, and mv, then jump into the real instruction pages
Browse By Multiple Dimensions
Instruction of the Day
Instruction LibraryAtomically read the old CSR value into rd and write rs1 to the same CSR; rd=x0 suppresses the CSR read
Add a 20-bit upper immediate (shifted left 12 bits) to the PC and place the result in rd
Jump to PC-relative offset, storing return address (PC+4) in rd
Register Quick Reference
RV32 / RV64 Compare| Register | ABI | Role | Saved by |
|---|---|---|---|
| x0 | zero | Zero constant | N/A |
| x1 | ra | Function return address | Caller |
| x2 | sp | Stack pointer | Callee |
| x3 | gp | Global pointer; unallocatable and not modified by normal procedures. | N/A |
| x4 | tp | Thread pointer for accessing thread-local storage (TLS); ordinary procedures should not modify it. | N/A |
| x5 | t0 | Temporary / alternate link register | Caller |
| x10 | a0 | Argument / Return value | Caller |
| x11 | a1 | Argument / Return value | Caller |