Solaris 64-bit Developer's Guide

Calling Convention Changes

When passing structures by value 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 arguments passed by value are passed in floating point registers.