You are basically asking about the calling convention for your specific arch. For most archs, there is an ABI which extends SVID, and details the calling convention. Usually, gcc tries to follow that ABI.
Here is a nice document which details the default calling conventions of various compilers for the x86 and x86_64 architectures.