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
 
Format Push/Pop
Opcode 0x02
Extension Zcmp

Operands

  • rlist
    Register List
  • stack_adj
    Stack Adjustment