SPARC Assembly/Subroutines

This page is going to discuss the use of subroutines in SPARC Assembly.

Saving Registers

edit

Subroutine Linkage

edit

A typical (non-leaf) subroutine has a procedure prologue and epilogue something like this:[1][2]

do_something_useful:
    ; prologue:
    save %sp, -16, %sp

    ; main body
    ; ... perform function ...

    ; leave return value, if any, in register %i0

    ; epilogue:
    ret
    restore

Return Values

edit

Further reading

edit