Sun Studio 12: C ユーザーズガイド

F.3.1.1 64 ビット SPARC

すべての整数の引数は、8 バイト値として引き渡されます。

浮動小数点引数は可能なかぎり、浮動小数点レジスタに渡されます。

(x86)

関数は次のレジスタで結果を返します。

表 F–21 型を返すために x86 関数が使用するレジスタ

レジスタ 

返される型 

int 

%eax 

long long

%edx%eax

floatdoublelong double

%st(0)

float _Complex

%eax (実数部) と %edx (虚数部)

double _Complexlong double _Complex

対応する浮動小数点型の 2 つの要素を含む構造体と同じ 

structunionlong longdoublelong double を除くすべての引数は 4 バイト値として渡されます。 long long は 8 バイト値として、double は 8 バイト値として、また long double は 12 バイト値としてそれぞれ渡されます。

structunion はスタックにコピーされます。サイズは 4 の倍数バイトに丸められます。structunion を返す関数は、その structunion を格納する場所を指す隠された最初の引数に渡されます。

関数から戻ったあと、スタックから引数をポップするのは呼び出し側の責任です。呼び出された関数によってポップされる structunion の余分な引数を除きます。