Procedure Entry

Allocate stackspace:

    addi $sp, $sp, -4 * (number of local variables + number of callee saved registers)

In our scheme we only save $ra and $fp, so the number of callee saved registers is two.

Save the callee saved registers (two in our scheme):

    sw   $ra, 0($sp)
    sw   $fp, 4($sp)

Set up the frame pointer:

    add  $fp, $sp, $zero

To summarize:

    addi $sp, $sp, -4 * (number of local variables + 2)
    sw   $ra, 0($sp)
    sw   $fp, 4($sp)
    add  $fp, $sp, $zero


CSE 378 Spring 2002 - Section 4
First Previous Page 2 Next Last