アセンブリについて読んでいました。アセンブリでの呼び出しルーチンの規則について(特に、Linux)。アセンブリにprintfに8つ以上の浮動小数点値を渡す方法
なお、第8の浮動小数点パラメータはxmm0
を介して渡されていると言われている - xmm15
、レジスタrdi
の他のパラメータ、rsi
、rdx
、rcx
、r8
、r9
、及び他の残りのパラメータは、逆の順序でスタックにプッシュされるべきです。
8個以上の浮動小数点パラメータと6個以上の他のパラメータがある場合、それらをスタックにプッシュする順序はどうでしょうか? 8 fpに収まらない最初の浮動小数点値。レジスタ、または6つのレジスタに収まらないその他のパラメータ?
参照用に使用することができますか?タイトルページにはいくつかの名前が書かれていますが、私はこれまで聞いたことがありません。 –
@BulatM。はい、そのページは、標準のドキュメントの公式の現在のバージョンにリンクしています。例えば"* x86-64 psABIリビジョン252は[here](https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-r252.pdf)*からダウンロードできます。残念なことに、このドキュメントは、コンパイラが依存するすべてのものを完全には文書化していませんが、すべてが正確です。私が知っている唯一の例外は、[ゼロ/符号は32ビットに狭整数引数を拡張する](http://stackoverflow.com/questions/36706721/is-a-sign-or-zero-extension-required-when-adding -a-32bit-offset-to-a-pointer-for/36760539#36760539)。 –
ABIドキュメントのコピーは、以前はhttp://www.x86-64.org/documentation.htmlに掲載されていましたが、x86-64.orgは数週間前から死んでいました。 –