Procedure Exit

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

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

Deallocate stackspace:

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

Return to the caller:

    jr   $ra

To summarize:

    lw   $ra, 0($sp)
    lw   $fp, 4($sp)
    addi $sp, $sp, 4 * (number of local variables + 2)
    jr   $ra


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