Solaris 7 64-bit Developer's Guide

Calling Convention Changes

When passing structures by value and compiling the code for SPARC V9, if the structure is small enough, it is passed in registers rather than as a pointer to a copy. This can cause problems when passing structures between C code and hand-written assembly code.

Floating point parameters work in a similar fashion; some floating point values passed by value are passed in floating point registers.