CM.PUSH
Push Registers
CM.PUSH {reg_list}, -stack_adj
Pushes multiple registers (ra, s0-s11) to the stack and adjusts sp. Critical for small code size.
Details
CM.PUSH (Zcmp) saves a set of registers to the stack and decrements sp by a stack-frame size. The register list and stack adjustment are encoded in the instruction. Used as a function prologue.
Pseudocode Operation
SP -= adj; Mem[SP] = {regs};
Example
CM.PUSH {reg_list}, -stack_adj
Encoding
Binary Layout
1011100
31:25
rlist
spimm
10
24:23
Operands
-
rlist
Register List -
stack_adj
Stack Adjustment