Details of Function Call

  1. For each argument, use genarith to compute the argument. Then move the result from the register returned by genarith to %o0 ... Mark the genarith register unused.

  2. For each floating register that is in use, save it by
    std %fi,[%sp+SPOFFSET] .

  3. Call the function, followed by nop.

  4. For each floating register that is in use, restore it by
    ldd [%sp+SPOFFSET],%fi .

  5. Get a register of the appropriate type, and move the function result ( %o0 or %f0) to that register. Return that register as result.

Contents    Page-10    Prev    Next    Page+10    Index