x64
プラットフォームのマイクロソフトの呼び出し規則がいくつかの場所で1つに絞り込まれていることがわかりました。呼び出し元がスタックをクリーニングして(cdecl
)、パラメータがスタックとレジスタの組み合わせで渡されます正確な詳細はこちら)。私はこれがOSの呼び出し規約であれば、おそらくWindowsをターゲットとする他のコンパイラ(例えばmingw-w64)もそれに従うと仮定します。x64の呼び出し規則
他の主要なプラットフォーム(x64
Linuxなど)でもこの呼び出し規約が当てはまりますか?あるいは、Linuxは複数の呼び出し規約を使用していますか? GCC
またはClang
は、x64
Linuxで複数の呼び出し規約を許しますか?
)。マイクロソフトでは、__vectorcall呼び出し規約を追加しています。 SSE2レジスタには6つまでの '__m128'値が渡されます。 –