cm.popret

Destroys a stack frame: load `ra` and 0 to 12 saved registers from the stack frame, deallocate the stack frame, return to `ra`. This instruction pops (loads) the registers in `reg_list` from stack memory, and then adjusts the stack pointer by `stack_adj` and then return to `ra`. Restrictions on stack_adj: * it must be enough to store all of the listed registers * it must be a multiple of 16 (bytes): ** for RV32 the allowed values are: 16, 32, 48, 64, 80, 96, 112 ** for RV64 the allowed values are: 16, 32, 48, 64, 80, 96, 112, 128, 144, 160

Synopsis

cm.popret reg_list, stack_adj

Encoding

Type:

01234781510spimmrlist10111110
funct7: 1011111

RISC-V Instruction Encoder/Decoder

open cm.popret in rvcodecjs

Availability