呼出規約
マイクロソフト(以下MS) __fastcall 呼出規約(別名 __msfastcall)では、最初の2つの引数をECXおよびEDXに格納する。
ボーランド __fastcall 呼出規約では、最初の3つの引数をEAX, EDX, ECXに格納する。
Watcom __fastcall 呼出規約では、最初の4つの引数をEAX, EDX, EBX, ECXに格納する。
Watcom C/C++ コンパイラでは #pragma aux コンパイラ指令を用いて、プログラマが自前の呼出規約を指定することができる。取扱説明書によると、「"Very few users are likely to need this method, but if it is needed, it can be a lifesaver"(引用部分につき訳さない。ほとんど不要だが、いざという時には必要なものである、程度の意)」だそうである。
浮動小数点型、__m128型、およびそれらのうち同一の型を最大4つメンバーに持つ複合型はXMM0:XMM5に、__m256型およびその複合型はYMM0:YMM5を用いる。収まらなかった分は整数型としてポインタ渡しされる。返り値はRAX、XMM0:XMM3、YMM0:YMM3のいずれかに格納される。 それ以外はマイクロソフト x64呼出規約に準ずる。
浮動小数点型、__m128型、およびそれらのうち同一の型を最大4つメンバーに持つ複合型はXMM0:XMM5に、__m256型およびその複合型はYMM0:YMM5を用いる。収まらなかった分は整数型としてポインタ渡しされる。返り値はEAX、EDX:EAX、XMM0:XMM3、YMM0:YMM3のいずれかに格納される。 それ以外はマイクロソフト fastcallに準ずる。