RISC-V General-Purpose Registers

There are 31 general-purpose registers x1-x31 (called x registers),
which hold integer values. Register x0 is hardwired to the constant
zero. Each register is 32 bits wide.
x0zero constant value 0
x1ra return address (caller saved)
x2sp stack pointer (called saved)
x3gp global pointer
x4tp thread pointer
x5t0 temporary registers (caller saved)
x6t1 "
x7t2 "
x8s0/fp saved register or frame pointer (callee saved)
x9s1 saved register (callee saved)
x10a0 function arguments and/or return values (caller saved)
x11a1 "
x12a2 function arguments (caller saved)
x13a3 "
x14a4 "
x15a5 "
x16a6 "
x17a7 "
x18s2 saved registers (callee saved)
x19s3 "
x20s4 "
x21s5 "
x22s6 "
x23s7 "
x24s8 "
x25s9 "
x26s10 "
x27s11 "
x28t3 temporary registers (caller saved)
x29t4 "
x30t5 "
x31t6 "
The RISC-V Program Counter (pc) is a dedicated register
that stores the memory address of the instruction currently
being executed by the processor.